문제 조건에 "같은 알파벳을 두 개 이상 포함하지 않는다" 라는 조건이 있다.
즉, 같은 알파벳이 나오지 않는다.
그리고 두 명이서 번갈아 하기 때문에, 숫자 2와 주어진 문자열의 길이의 최소 공배수를 구해서 먼저 시작하는 사람은 그 최소 공배수 길이만큼 문자열을 연결해놓은 상태에서 짝수 인덱스에 위치하는 단어를, 다음 사람은 홀수 인덱스에 위치하는 단어를 가져가는 식으로 풀었다.
문자열 길이가 짝수인 경우, 즉 2로 나누어 떨어지는 경우에는 두 명이 한 번씩 번갈아 가져가므로 그냥 홀수 인덱스, 짝수 인덱스로 나눠가진 후에 똑같이 반복되지만, 문자열의 길이가 홀수라면 반복되는 최소 단위인 홀수*2를 만든 후에 나눠가지면 된다. 똑같이 반복되는 최소 열이 된다.
만약 같은 알파벳이 나오지 않는다는 조건이 없었다면 이렇게 최소공배수를 이용해서 풀지 못했을 것이다.
참고 : 국민대학교 교내 대회 문제 풀이 슬라이드
댓글 없음:
댓글 쓰기