[SWEA] 3376. 파도반 수열
문제 아래 그림과 같이 삼각형이 나선모양으로 늘어서 있는 형태를 생각해보자. 아래 그림과 같이 삼각형이 나선모양으로 늘어서 있는 처음에 이 나선은 한 변의 길이가 1인 정삼각형에서 시작한다. 그리고 현재 만들어진 나선에서 가장 긴 변에 그 변의 길이와 같은 크기의 정삼각형을 추가해 넣는다. 파도반 수열 PN은 나선에 N번째로 추가한 나선의 길이를 의미하는 수열이다. P1에서 P10까지를 순서대로 나열하면 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어질 때 PN을 구하는 프로그램을 작성하라. 풀이방법 파도반 수열은 대표적인 동적 계획(DP, Dynamic Programming) 알고리즘으로 해결할 수 있는 문제이다. 문제에 주어진 값으로 점화식을 세우면 D[n] = D[n-1] + D..
2020. 2. 24.
[SWEA] [S/W 문제해결 응용] 2일차 - 최대 상금
문제 퀴즈 대회에 참가해서 우승을 하게 되면 보너스 상금을 획득할 수 있는 기회를 부여받는다. 우승자는 주어진 숫자판들 중에 두 개를 선택에서 정해진 횟수만큼 서로의 자리를 위치를 교환할 수 있다. 예를 들어, 다음 그림과 3, 2, 8, 8, 8 의 5개의 숫자판들이 주어지고 교환 횟수는 2회라고 하자. 교환전> 처음에는 첫번째 숫자판의 3과 네 번째 숫자판의 8을 교환해서 8, 2, 8, 3, 8이 되었다. 다음으로, 두 번째 숫자판 2와 마지막에 있는 8을 교환해서 8, 8, 8, 3, 2이 되었다. 정해진 횟수만큼 교환이 끝나면 숫자판의 위치에 부여된 가중치에 의해 상금이 계산된다. 숫자판의 오른쪽 끝에서부터 1원이고 왼쪽으로 한자리씩 갈수록 10의 배수만큼 커진다. 위의 예에서와 같이 최종적으로..
2020. 2. 24.