본문 바로가기

분류 전체보기

(81)
[프로그래머스/Python] Level2 - 피로도 💬 문제 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다. 이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러개 있는데, 한 유저가 오늘 이 던전들을..
[BOJ/Phython] 실버1 <11660> 구간 합 구하기 5 💬 문제 N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다. 예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자. 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 여기서 (2, 2)부터 (3, 4)까지 합을 구하면 3+4+5+4+5+6 = 27이고, (4, 4)부터 (4, 4)까지 합을 구하면 7이다. 표에 채워져 있는 수와 합을 구하는 연산이 주어졌을 때, 이를 처리하는 프로그램을 작성하시오. 🔨 입력 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져..
[BOJ/Phython] 골드3 <1865> 웜홀 💬 문제 때는 2020년, 백준이는 월드나라의 한 국민이다. 월드나라에는 N개의 지점이 있고 N개의 지점 사이에는 M개의 도로와 W개의 웜홀이 있다. (단 도로는 방향이 없으며 웜홀은 방향이 있다.) 웜홀은 시작 위치에서 도착 위치로 가는 하나의 경로인데, 특이하게도 도착을 하게 되면 시작을 하였을 때보다 시간이 뒤로 가게 된다. 웜홀 내에서는 시계가 거꾸로 간다고 생각하여도 좋다. 시간 여행을 매우 좋아하는 백준이는 한 가지 궁금증에 빠졌다. 한 지점에서 출발을 하여서 시간여행을 하기 시작하여 다시 출발을 하였던 위치로 돌아왔을 때, 출발을 하였을 때보다 시간이 되돌아가 있는 경우가 있는지 없는지 궁금해졌다. 여러분은 백준이를 도와 이런 일이 가능한지 불가능한지 구하는 프로그램을 작성하여라. 🔨 입력 ..
[BOJ/Phython] 골드5 <2096> 내려가기 💬 문제 N줄에 0 이상 9 이하의 숫자가 세 개씩 적혀 있다. 내려가기 게임을 하고 있는데, 이 게임은 첫 줄에서 시작해서 마지막 줄에서 끝나게 되는 놀이이다. 먼저 처음에 적혀 있는 세 개의 숫자 중에서 하나를 골라서 시작하게 된다. 그리고 다음 줄로 내려가는데, 다음 줄로 내려갈 때에는 다음과 같은 제약 조건이 있다. 바로 아래의 수로 넘어가거나, 아니면 바로 아래의 수와 붙어 있는 수로만 이동할 수 있다는 것이다. 이 제약 조건을 그림으로 나타내어 보면 다음과 같다. 별표는 현재 위치이고, 그 아랫 줄의 파란 동그라미는 원룡이가 다음 줄로 내려갈 수 있는 위치이며, 빨간 가위표는 원룡이가 내려갈 수 없는 위치가 된다. 숫자표가 주어져 있을 때, 얻을 수 있는 최대 점수, 최소 점수를 구하는 프로그..
배낭 문제(KnapSack Problem) 백준 평범한 배낭 문제를 발견하고 도전을 하다가 이에 관한 문제들이 시리즈로 돼있는 것을 발견하고, 이것에 대해 정리를 해보고자 한다. https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 배낭 문제(KnapSack Problem)이란? n개의 물건이 있을때, 각 물건에는 가치와 무게가 존재한다. 무게를 정해주고, 해당 무게를 넘어서는 배낭에 물건을 담지 못한다. 이 때, 가장 물건의..
컴포넌트 스캔 이전에 까지는 스프링 빈을 등록할때 @Bean을 코드에 작성하여 진행하였다. 이렇게 등록하는 것을 수동으로 하나하나씩 하기때문에, 수동 빈 등록이라고 부른다. 누가봐도 귀찮은 과정이기 때문에, 자동적으로 빈을 등록하는 과정에 대해서 알아 보자. 💻 @Component & @ComponentScan @Component 어노테이션을 쓰면 이 어노테이션이 붙은 클래스가 스프링 빈의 등록대상이 된다. 사용방법은 간단하게 스프링 빈으로 등록을 원하는 클래스 상단에 해당 어노테이션을 붙여주면 된다. @Component public class MemomryMemberRepository implements MemberRepository() @ComponentScan 어노테이션을 붙여주면, 이름 그대로 @Componen..
싱글톤 컨테이너 이전에 우리는 스프링 컨테이너의 존재와 필요성에 대해서 느꼈다. 이러한 스프링 컨테이너는 싱글톤 패턴의 형태로 되어 있는데, 싱글톤은 무엇인지 그리고, 싱글톤 컨테이너는 어떻게 구성되어 있는지 알아보자. 💻 싱글톤 패턴 먼저, 싱글톤 패턴이 무엇인지부터 알아보자. 예전 학부 수업중 디자인 패턴을 몇개 알아본 적이 있는데, 그 중에 싱글톤 패턴에 대해서도 다뤘었다. 그 당시는 어려워서 자세한 구현 방법은 제대로 알지 못하였고, 객체를 하나만 생성한다는 것만 알았다. 싱글톤 패턴이란 클래스의 인스턴스가 딱 1개만 생성 되는 것을 보장하는 디자인 패턴이다. 이 싱글톤 디자인 패턴을 따르는 것들은 객체 인스턴스가 2개 이상 생성되지 못한다. 이렇게 구성하는 방식은 꽤나 간단하다. public class Sing..
스프링 빈과 스프링 컨테이너 저번 포스팅에서는 DI(Dependency Injection)에 대해서 알아 보았다. 이번에는 스프링에서 DI를 통해 의존관계를 주입해주는 이 스프링 컨테이너에 대해서 알아보자. 💻 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 먼저, 스프링 컨테이너가 생성되는 코드를 보자. 여기서 AoolicationContext라는 인터페이스를 스프링 컨테이너라고 한다. 위 코드는 AppConfig라는 클래스에 속해있는 스프링 빈들을 스프링 컨테이너에서는 스프링 빈들의 생성,삭제,관리등을 담당한다. 스프링 빈에 대해서 간단하게 짚고 넘어가자면, 하나의 자바 객체이다. 우..