본문 바로가기

코딩테스트33

[백준][파이썬]18352번: 특정 거리의 도시 찾기 문제 출처 : https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 내 풀이 import sys import heapq input = sys.stdin.readline INF = int(1e9) n, m, k, x = map(int, input().split()) graph = [[] for i in range(n + 1)] distance = [INF] * (n + 1) ch.. 2021. 5. 18.
[백준][파이썬]11727번: 2 x n 타일링 2 문제 출처 : https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 내 풀이 n = int(input()) answer = 1 for i in range(1, n): if i % 2 == 1: answer = (answer * 2) + 1 else: answer = (answer * 2) - 1 print(answer % 10007) 설명 잘 생각하면 각 항마다 규칙성이 있을 것 같았다. 그렇게 찾아본 결과. 다음 항으로 넘어갈 때, (이전 항) * 2 + ( + 1 or - 1.. 2021. 5. 13.
[백준][파이썬]14501번: 퇴사 문제 출처 : https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 내 풀이 n = int(input()) t_list = [] p_list = [] answer = [0] * (n + 1) for i in range(n): t, p = map(int, input().split()) t_list.append(t) p_list.append(p) for i in range(n - 1, -1, -1): if t_list[i] + i > n: answer[i] = answer[i + 1] else: answer[i] = max(p_list[i] + answer[i + t_list[i]], an.. 2021. 5. 13.
[백준][파이썬]9625번: BABBA 문제 출처 : https://www.acmicpc.net/problem/9625 9625번: BABBA 상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했 www.acmicpc.net 내 풀이 n = int(input()) a = [1] b = [0] for i in range(n): a.append(b[i]) b.append(b[i] + a[i]) print(a[-1], end = ' ') print(b[-1]) 설명 조건을 보면 B -> BA, A -> B로 바뀐다. 이는 곧 a[i] 의 A의 개수는 a[i - 1]의 B의 개수 B의 개수는 (a[i - 1]의 A.. 2021. 5. 13.