백준

    [백준 파이썬] # 2480 주사위 세개

    Bronze IV # 2480 주사위 세개 링크 : https://www.acmicpc.net/problem/2480 2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개 www.acmicpc.net 풀이 a, b, c = map(int, input().split()) li = [0 for i in range(7)] # 6+1(0을 포함해야 하므로) li[a] += 1 li[b] += 1 li[c] += 1 if max(li) == 3: print(10000+(li.index(max(li))*1000)) elif max(li) ..

    [백준 파이썬] # 1904 01타일

    Silver III # 1904 01타일 링크 : https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 풀이 N = int(input()) dp = [0] * (N+1) # indexerror 방지 dp[0] = 1 dp[1] = 2 for i in range(2, N): dp[i] = (dp[i-2] + dp[i-1]) % 15746 # 메모리 크기 제한 print(dp[N-1]) 후기 백준에서 문제 검색 버튼을 이용하면 에러가 발생하는 원인에 대해 쉽..

    [백준 파이썬] # 2579 계단 오르기

    Silver III # 2579 계단 오르기 링크 : https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 풀이 N = int(input()) li = [0]*300 # [0 for i in range(N)] 적용 시 indexerror 발생 dp = [0]*300 for i in range(N): nums = int(input()) li[i] = nums dp[0] = li[0] dp[1] = li[0]+li[1] dp[2] = max(li[1]+li[2], ..

    [백준 파이썬] # 2525 오븐 시계

    Bronze IV # 2525 오븐 시계 링크 : https://www.acmicpc.net/problem/2525 2525번: 오븐 시계 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.) www.acmicpc.net 풀이 A, B = map(int, input().split()) C = int(input()) B += C while True: if B >= 60: A += 1 B -= 60 else: break if A >= 24: A -= 24 print(A, B) 후기 while ~ else: break 구문으로 무한 반복되는 것을 방지했다

    [백준 파이썬] # 1932 정수 삼각형

    Silver I # 1932 정수 삼각형 링크 : https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 풀이 T = int(input()) li = [] # 입력값 list 만들기 for _ in range(T): nums = list(map(int, input().split())) li.append(nums) # 마지막 인덱스로부터 최대값을 구해나가기 for i in reversed(range(T-1)): for j in range(len(li[i])): li[i][j] = li[i][j] + max(li[i+1][j]..

    [백준 파이썬] # 1002 터렛

    Silver IV # 1002 터렛 링크 : https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 풀이 T = int(input()) for i in range(T): x1, y1, r1, x2, y2, r2 = map(int, input().split()) l = ((x2-x1)**2 + (y2-y1)**2)**0.5 if l == 0: if r1==r2: print(-1) else: print(0) else: if r1+r2 == l or abs(r2-r1) == l: print(1) elif r1..

    [백준 파이썬] # 10250 ACM 호텔

    Bronze III # 10250 ACM 호텔 링크 : https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 풀이 T = int(input()) for i in range(T): H, W, N = map(int, input().split()) if N%H == 0: print(H*100 + N//H) else: print(N%H*100 + N//H+1) 후기 층과 방 번호를 문자열로 더하려다가 많이 실패.. 했었다

    [백준 파이썬] # 2775 부녀회장이 될테야

    Bronze II # 2775 부녀회장이 될테야 링크 : https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 풀이 T = int(input()) for i in range(T): k = int(input()) n = int(input()) apart = [[1]*n for j in range(k+1)] apart[0] = list(range(1, n+1)) for j in range(1, k+1): for h in range(1, n): apart[j][h] = apart[j][h-1] ..

    [백준 파이썬] # 9461 파도반 수열

    Silver III # 9146 파도반 수열 링크 : https://www.acmicpc.net/problem/9146 9146번: Linie Na výstupu bude věta "Smernice byla dodrzena.", pokud neexistuje žádná trojice policistů stojících na jedné přímce. Jinak program vypíše na výstup větu "Tito policiste porusuji smernici:" a na každém z dalších řádků bude vždy výpis www.acmicpc.net 풀이 N = int(input()) def P(n): dp = [1, 1, 1] num = int(input()) if num..

    [백준 파이썬] # 1003 피보나치 함수

    Silver III # 1003 피보나치 함수 링크 : https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 풀이 N = int(input()) for _ in range(N): num = int(input()) dp = [[1,0],[0,1]] if num >= 2: for i in range(2, num+1): dp.append([dp[i-1][0]+dp[i-2][0], dp[i-1][1]+dp[i-2][1]]) print(dp[-1][0], dp[-1][1]) else: print(dp[num][0], dp[num][1]) 후기 DP의 첫 ..