본문 바로가기

반응형

전체 글

(253)
[python/파이썬] 백준 20152 Game Addiction [문제 출처] https://www.acmicpc.net/problem/20152 20152번: Game Addiction 첫째 줄에 집과 PC방의 좌표 (H, H), (N, N) 을 나타내는 두 정수 H, N (0 ≤ H, N ≤ 30) 이 차례로 주어진다. www.acmicpc.net [문제 풀이] 집과 PC방의 좌표는 x와 y의 값이 같기에 h와 n값이 무엇이냐보다는 두 값의 차이가 얼마이냐가 중요하다. 두 값이 달라지더라도 두 값의 차가 같다면 경로의 개수는 일치한다. 만일 h = 0, n = 3이라고 한다면 0 0 n 0 0 0 h 0 0 이러한 형태로 위치한다. x < y 인 지역은 침수되어 지나갈 수 없으므로 0 0 1 0 1 1 1 1 1 1로 표시된 부분만 지나갈 수 있다. 따라서 모든 ..
[python/파이썬] 백준 15990 1, 2, 3 더하기 5 [문제 출처] https://www.acmicpc.net/problem/15990 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net [문제 풀이] 9095번 문제인 '1, 2, 3 더하기'와 유사하지만 15990번 문제는 9095번과는 달리 2차원 배열을 사용하여 해결하는 문제이다. 1,2,3 이 세 가지의 숫자를 사용하되 연속적으로는 사용할 수 없다. 따라서 n에 대한 답을 알기 위해서는 n행 3열짜리 리스트가 필요하다. 기본적인 규칙은 간단하다. dp[n][0]에는 n을 나타내는 방법중에 마지막 숫자가 1로 끝나는 경우의 수를 저장한다. dp[n][1]에는 n..
[python/파이썬] 백준 20546 기적의 매매법 [문제 출처] https://www.acmicpc.net/problem/20546 20546번: 🐜 기적의 매매법 🐜 1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다. www.acmicpc.net [문제 풀이] import sys input = sys.stdin.readline money = int(input()) price = list(map(int,input().split())) price.insert(0,0) up = 0 down = 0 june_m = money min_m = money june_cnt = 0 min_cnt = 0 for i i..
[python/파이썬] 백준 21918 전구 [문제 출처] https://www.acmicpc.net/problem/21918 21918번: 전구 $N$개의 전구가 있고 맨 왼쪽에 있는 전구를 첫 번째라고 하자. 전구의 상태는 두 가지가 있으며 이를 숫자로 표현한다. $1$은 전구가 켜져 있는 상태를 의미하고, $0$은 전구가 꺼져 있는 상태를 www.acmicpc.net [문제 풀이] import sys input = sys.stdin.readline n,m = map(int, input().split()) bulb = list(map(int,input().split())) for i in range(m): inst = list(map(int, input().split())) if inst[0] == 1: bulb[inst[1]-1] = inst..
[python/파이썬] 백준 14430 자원 캐기 [문제 출처] https://www.acmicpc.net/problem/14430 14430번: 자원 캐기 인류의 차세대 인공지능 자원 캐기 로봇인 WOOK은 인간 대신 자원을 캐는 로봇이다. WOOK은 언제나 제한된 범위 내에서 자원을 탐색하며, 왼쪽 위 (1, 1)부터 오른쪽 아래 (N, M)까지 자원을 탐색한다. www.acmicpc.net [문제 풀이] import sys input = sys.stdin.readline x,y = map(int, input().split()) arr = [[0 for i in range(y+1)] for _ in range(x+1)] #print(arr) dp = [[0 for i in range(y+1)] for _ in range(x+1)] for i in r..
[python/파이썬] 백준 11060 점프 점프 [문제 출처] https://www.acmicpc.net/problem/11060 11060번: 점프 점프 재환이가 1×N 크기의 미로에 갇혀있다. 미로는 1×1 크기의 칸으로 이루어져 있고, 각 칸에는 정수가 하나 쓰여 있다. i번째 칸에 쓰여 있는 수를 Ai라고 했을 때, 재환이는 Ai이하만큼 오른쪽으로 www.acmicpc.net [문제 풀이] import sys input = sys.stdin.readline n = int(input()) jumps = list(map(int, input().split())) dp = [n+1] * n dp[0] = 0 for i in range(n): for j in range(1, jumps[i]+1): if i+j>=n: break dp[i+j] = min(..
[python/파이썬] 백준 1660 캡틴 이다솜 [문제 출처] https://www.acmicpc.net/problem/1660 1660번: 캡틴 이다솜 캡틴 이다솜은 자신의 해적선에 적을 공격하기 위한 대포알을 많이 보관해 놓는다. 다솜이는 미적감각이 뛰어나기 때문에, 대포알은 반드시 사면체 모양으로 쌓아놓아야 한다고 생각한다. 사면 www.acmicpc.net [문제 풀이] PyPy3로 제출해야 시간 초과가 나오지 않는다. import sys input = sys.stdin.readline n = int(input()) balls = [] num = 0 a = 1 while n > num: num += (a*(a+1))//2 balls.append(num) a += 1 dp = [300001 for _ in range(n+1)] for i in r..
[python/파이썬] 백준 17212 달나라 토끼를 위한 구매대금 지불 도우미 [문제 출처] https://www.acmicpc.net/problem/17212 17212번: 달나라 토끼를 위한 구매대금 지불 도우미 달나라 토끼들이 사용하는 화폐는 동전뿐이다. 동전의 종류는 1원, 2원, 5원, 7원 이렇게 4종류가 있다. 물건을 사고 동전으로 계산을 하는데 동전의 개수가 최소가 되도록 지불하지 않는 것은 www.acmicpc.net [문제 풀이] 1,2,5,7원짜리 동전들을 이용하여 최소 개수의 동전을 사용하는 경우의 동전 개수를 구하는 문제이다. 우선 1원짜리 i원은 i개의 동전으로 지불할 수 있다. 따라서 리스트를 i로 초기화한다. 후에 1,2,5,7원 적은 경우 중에 어떤 경우가 가장 적은 동전을 사용했는지 판단하고 그 경우 +1을 dp[n]으로 정한다. import sys..

반응형