목록전체 글 (271)
DHistory
문제 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 풀이 1. 1로 만들기의 응용으로 생각하여 1로 만들기의 뼈대를 활용하였다. 2. 최소값을 구하는 부분에서 어떤 값을 선택할 지가 주된 문제이다. 3. DP는 큰 문제를 작은 문제로 해결할 수 있기 때문에 연속된 참조하고 있다. 3-1. 10인 경우 9와 5중 1로 만들 수 있는 경우의 수 중 작은 값을 선택한다. 3-2. 이 때, 9는 다음으로 3을 참조하고 5는 4를 참조한다. 3-3. 이를 반복하여 최종 결과물은 10 -> 9 -> 3 -> 1이 등장하게 된다. 4. 해당 참조를 구하기 위한 값을 따로 저장했다. (answer) n = int(input())..
문제 1890번: 점프 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장 www.acmicpc.net 풀이 1. Start(왼쪽 위)에서 주어진 거리만큼 오른쪽 or 아래로 이동할 수 있다. 2. Start를 기점으로 오른쪽으로 이동하는 경우와 아래로 이동하는 경우를 각 값(d)을 할당해준다. 2-1. 기준으로부터 오른쪽으로 이동하는 경우 2-2. 기준으로부터 아래쪽으로 이동하는 경우 2-3. 범위를 벗어난 경우 이동할 수 없다. 3. Goal에 도달하면 진행을 막는 종착점이기에 더 이상 진행하지 않는다. import sys n = int(sys..
문제 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 풀이 d[n][m]: 우리의 크기가 n일 때, m의 배치에 따라 사자를 배치를 경우의 수 1번째 경우 사자를 1번째 칸에 배치하는 경우 2번째 경우 사자를 2번째 칸에 배치하는 경우 3번째 경우 사자를 아예 배치하지 않는 경우 따라서, d[n][m]은 다음 사진과 같은 상황으로 배치할 수 있다. 1번째 경우 사자를 1번째 칸에 위치해있으므로, 직전에 배치할 때는 2번째 칸에 배치하거나 아예 배치하지 않을 수 있다. 2번째 경우 사자를 2번째 칸에 위치해있으므로, 직전에 배치할 때는 1번째 칸에 배치하거나 아예 배치하지 않을 수 있다. 3번째 경우 현재 사자를 배치하지 않았으므로, 직전에는 ..
data.sql 파일 생성 및 데이터 입력 resources ㄴdata.sql # 파일 생성 insert into climbing_park (name) values ('이름'); application.yaml 설정 파일 변경 spring: h2: console: enabled: true datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:local username: svc_local jpa: defer-datasource-initialization: true # 추가
문제 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 풀이 import sys n, m = map(int, sys.stdin.readline().rstrip().split()) numbers = [] for _ in range(n): data = list(map(int, sys.stdin.readline().rstrip().split())) numbers.append(data) coordinates = [] for _ in range(m): coordinate = li..