백준 1026.보물
·
백준
https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net n = int(input()) a = list(map(int,input().split())) # 정렬가능한 a리스트 b = list(map(int,input().split())) # 정렬불가능한 b리스트 idx = [x for x in range(n)] # b의 정렬된 인덱스를 저장하기 위한 인덱스 lst = [] for i in range(n): lst.append((b[i],idx[i]..
백준 1931.회의실 배정
·
백준
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net import sys n = int(input()) room = [list(map(int, sys.stdin.readline().split())) for _ in range(n)] # 시작하자마자 끝나는 경우 (a=b)고려 # 시작시간으로 먼저 정렬을 해준 후에, 종료 시간을 기준으로 정렬 room.sort(key = lambda x: x[0]) room.sort(key = lambda x: x[1]) cnt = 1 # 무조건 한번은 가능하므로 end = room[0][1] # 최종 종료 시간 설정 for i in..
백준 11047. 동전 0
·
백준
https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net n, k = map(int,input().split()) coins = [int(input()) for _ in range(n)] cnt = 0 for i in range(n-1,-1,-1): if k >= coins[i]: cnt += k // coins[i] k = k % coins[i] if k == 0: break print(..
백준 1463. 1로 만들기
·
백준
https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net BFS 풀이(내풀이) import sys from collections import deque def bfs(n): q = deque([n]) while q: n = q.popleft() if n == 1: return arr[n] if n % 2 == 0 and not arr[n//2]: arr[n//2] = arr[n] + 1 q.append(n//2) if n % 3 == 0 and not arr[n//3]: arr[n//3] = arr[n] + 1 q.append(n//3) if not arr[n-1]:..
백준 5014. 스타트링크
·
백준
https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net from collections import deque F, S, G, U, D = map(int,input().split()) visited = [0]*(F+1) def bfs(S): q = deque([S]) visited[S] = 1 # 시작점 방문처리 해줘야 U나 D가 0이어도 눌렀다고 카운트하지 않음 while q: t = q.popleft() if t == G: return visited[t]-1 #..
백준 1697. 숨바꼭질
·
백준
https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net import sys from collections import deque def bfs(v): q = deque([v]) while q: v = q.popleft() if v == k: # 목표값 찾은 경우 return arr[v] # 해당 목표값까지의 깊이(걸린시간) 반환 for next_v in (v-1, v+1, 2*v): if 0