본문 바로가기

Coding Test15

[Greedy] 2457 : 공주님의 정원 https://www.acmicpc.net/problem/2457 2457번: 공주님의 정원 첫째 줄에는 꽃들의 총 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 각 꽃이 피는 날짜와 지는 날짜가 주어진다. 하나의 날짜는 월과 일을 나타내는 두 숫자로 표현된다. 예를 들어서, www.acmicpc.net 1. 코드 from sys import * from datetime import date # DATE DIFFERENCE -> NUMBER def dayToNum(flower): start = date(2021, flower[0], flower[1]) - date(2021, 1, 1) end = date(2021, flower[2], flower[3]) - date(2021, .. 2021. 7. 16.
[Dijkstra] 1916 : 최소비용 구하기 https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 1. 코드 from sys import * import heapq # INF INF = int(10e9) # Graph (N x N) graph = [[] for _ in range(N + 1)] # INPUT N = int(stdin.readline().rstrip()) M = int(stdin.readline().rstrip()) for _ in range(M.. 2021. 7. 16.
[String, Hash] 4358 : 생태학 https://www.acmicpc.net/problem/4358 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 1. 풀이 from collections import defaultdict 사용법을 익히자. 백분율 출력 방식에 대해서 익히자. 문자열 종료 조건은 not으로 해결한다. 2. 코드 from sys import * from collections import defaultdict # defaultdict TREE = defaultdict(int) num = 0 while True: # 입력.. 2021. 7. 15.
[DP] 2225: 합분해 https://www.acmicpc.net/problem/2225 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 1. 풀이 dp[i][j] : 정수 j개를 더해서 i가 되는 경우의 수 ※ 이처럼 DP문제는 규칙을 찾는게 가장 중요하다. 2. 코드 from sys import * # INPUT N, K = map(int, stdin.readline().rstrip().split()) # DP dp = [[0] * 201 for _ in range(201)] for i in range(201): dp[i][1] = 1 for j in range(2, 201): dp[1][j] = j for i in range(2, N + 1): for .. 2021. 7. 15.