[파이썬] 백준 1003 : 피보나치 함수 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 실버 3 DP 접근 문제에서 써져 있는 재귀함수 방법 그대로 날먹하면 시간초과 당한다... import sys zero_cnt = 0 one_cnt = 0 def fibo(x): global zero_cnt global one_cnt if x == 0: zero_cnt += 1 return 0 elif x == 1: one_cnt += 1 return 1 else: return fibo(x-1) + fibo(x-2) t = int(sys.stdin.r..
[파이썬] 백준 13301 : 타일 장식물 https://www.acmicpc.net/problem/13301 13301번: 타일 장식물 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개 www.acmicpc.net 실버 5 수학, DP 접근 그냥 피보나치 수열을 응용한 문제. 입력한 수를 K라고 가정하고, 피보나치 수열을 prime[1]~prime[K]로 구현한다면 문제에서 제시하는 그림은 다음과 같다. 코드 import sys K = int(sys.stdin.readline()) prime = [0]*(K+1) prime[1] = 1 for i in range(2,..
[파이썬] 백준 9625 : BABBA https://www.acmicpc.net/problem/9625 9625번: BABBA 상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했 www.acmicpc.net 실버 5 구현, DP 접근 A는 B로, B는 BA로 바꾸는 걸 반복하고, A와 B의 개수를 세어 보았다. A (1, 0) B (0, 1) BA (1, 1) BA B (1, 2) BA B BA (2, 3) BA B BA BA B (3, 5) BA B BA BA B BA B BA (5, 8) 버튼을 처음 누른 뒤의 화면이 B이므로 B가 된 이후부터의 A의 개수는 0..
[파이썬] 백준 15312 : 이름 궁합 https://www.acmicpc.net/problem/15312 15312번: 이름 궁합 영어 대문자 알파벳 26개의 획수는 순서대로 3, 2, 1, 2, 3, 3, 2, 3, 3, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1 로 정한다. (출제자가 알파벳 대문자를 쓰는 방법이 기준이다) www.acmicpc.net 브론즈 1 DP, 구현, 문자열 획수에 대한 기준은 문제의 힌트에 명시되어 있다. 그냥 문제에서 요구하는 조건 그대로 구현하면 쉽게 풀린다. 인접한 두 수의 합을 10으로 나눈 나머지를 리스트에 재할당하되, pop으로 마지막 원소를 제거하는 식으로 숫자를 줄여나갔다. 특히, 리스트의 원소가 int일 경우..
[파이썬] 백준 17202 : 핸드폰 번호 궁합 https://www.acmicpc.net/problem/17202 17202번: 핸드폰 번호 궁합 어린시절 다들 한 번씩은 이름으로 궁합을 본 적이 있을 것이다. 이것과 비슷한 방식으로 중앙대학교에는 핸드폰 번호 궁합을 보는 것이 유행이라고 한다. 핸드폰 번호 궁합을 보기 위해서는 www.acmicpc.net 브론즈 1 구현, DP DP풀다가 지친 심신을 달래기 위해 쉬운 문제를 풀었다.. DP 풀듯이 접근하지는 않았고 문제에서 나와있는 그대로 구현했다. 인접한 두 수를 더할때 길이가 1씩 줄어들기 때문에 pop을 써서 마지막 원소를 제거하는 방법으로 연산을 계속했다. 코드(76ms) import sys; input = sys.stdin.readline ..
[파이썬] 백준 9655 : 돌 게임 https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 실버 5 수학, DP 두 사람은 돌을 1개 또는 3개를 들고 갈 수 있는 선택권이 있다. SK가 1개 CY가 1개 = 2개 SK가 1개 CY가 3개 = 4개 SK가 3개 CY가 1개 = 4개 SK가 3개 CY가 3개 = 6개 즉, 두 사람이 모두 돌을 가져가는 한 턴이 끝나면, 두 사람이 가져간 돌의 합은 항상 짝수개가 된다. 원래 돌의 개수가 짝수라면, 짝수개를 빼도 짝수가 되고, 원래 돌의 개수가 홀수라면, 짝수개를 빼도 홀수가 된다. 예를들어 N = 25라면 돌을 짝수 개씩 ..