[파이썬] 백준 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라면 돌을 짝수 개씩 ..
[파이썬] 백준 2748 : 피보나치 수 2 https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 브론즈 1 수학, DP 접근 다이나믹 프로그래밍의 기본적인 문제. 보톰업 방식은 반복문을 이용해 작은 것부터 큰 수를 처리한다. 피보나치 수의 1, 2번째 수는 1이므로 미리 두 개를 할당하고 난 후에 3번째 값부터 반복문을 사용하면 쉽게 작성할 수 있다. 코드 import sys; input = sys.stdin.r..
[파이썬] 백준 17219 : 비밀번호 찾기 https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 실버 4 해시 코드 입력 값을 찾아야 하는 주소의 범위가 10만이므로 리스트를 쓰지말고 딕셔너리를 쓰면 된다. 찾아야 하는 주소가 기존에 입력된 주소에 반드시 존재하고 있기 때문에 그냥 직관적으로 짜면 풀린다. (풀어내는 알고리즘에 따라 같은 난이도라도 어떤 건 너무 쉽고 어떤 건 너무 어려운 듯..) import sys;..