더북(TheBook)

문제 풀이 흐름

함정을 확인하지 않은 채로 진행한다는 가정 아래 코드를 짜보겠습니다. 이럴 경우 처음부터 문제에서 어떻게 풀라고 과정까지 다 알려주기 때문에 딱히 덧붙일 사항이 없습니다.

1. 같은 알파벳을 2개 찾아서 제거합니다.

2. 제거된 문자열을 합치고 원래 문자열에 덮어씁니다(앞뒤로 연결).

3. 남은 문자열의 길이가 1 미만이 될 때까지 1~2번 과정을 반복합니다.

같은 알파벳을 2개 찾을 때 ‘현재 자신의 위치 + 그 앞의 위치’를 검사하므로 반복문으로 배열을 순회한다면 전체에서 -1만큼 덜 수행해야 한다는 점을 잊지마세요.

이 문제를 풀 때는 다음 두 가지 사항만 신경 쓰면 됩니다.

• 2개씩 짝지어 문자열이 사라진다. → 모두 짝지어지면 결국 0개가 되므로 그 이상이 남으면 제거에 실패한 것이다(개수가 동일해도 제거하지 못했으므로 종료로 판정).

• 짝지은 문자를 공백으로 바꿨는데, 공백 문자열이 남았다. → ''.join()으로 공백 문자열을 전부 자동 소거한다.

코드가 짧은 관계로 바로 정답을 살펴보겠습니다.

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.