알고리즘 - Python / 백준 - 3020번 : 개똥벌레
3020번: 개똥벌레 (acmicpc.net) 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net 풀이 동굴에 종유석과 석순이 있고 개똥벌레가 날아갈 때 , 부수는 종유석과 석순 개수의 최솟값을 구하고 그러한 구간이 얼마나 있는지 구하는 문제이다. N,H의 범위가 2 ≤ N ≤ 200,000, 2 ≤ H ≤ 500,000 이므로 , 한줄 한줄 따라가며 계산하면 시간초과가 날 것이다. 종유석의 길이가 4 라면 , 4 3 2 1 구간은 모두 부숴야할 종유석이 +1 되고 , 석순도 거꾸로 보면 같다. 따라서 종유석과 석순..
더보기
알고리즘 - Python / 백준 - 9660번 : 돌 게임 6
9660번: 돌 게임 6 (acmicpc.net) 9660번: 돌 게임 6 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1,000,000,000,000) www.acmicpc.net 풀이 N개의 돌을 1 , 3 , 4개 씩 번갈아 가며 가져가는 게임에서 마지막 돌을 가져가면 승리한다. 두 사람 모두 최선의 플레이를 한다고 했을때 , 이기는 사람을 구하는 문제이다. 처음 보았을 때 DP 스타일의 문제 라고 생각했지만 , N의 크기가 1,000,000,000,000 이었기에 DP는 접어두고 규칙을 찾기 시작했다. 규칙을 찾아보니 2 부터 시작해 모두 찾아보니 +5 , +2 +5 , +2 ... 더해나가는 경우가 창영이가 승리하는 경우라는 것을 찾을 수 있었다. #1 - 상근 #2 - 창영 #3 - 상근 #4 ..
더보기