=> 문제점: 출력되는 answer가 hkpy에서 더 이상 바뀌지 않았다.
'index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아간다'와 관련된 예외 처리가 안 됐다.
- 핵심: Set 자료구조를 사용해서 skip되는 알파벳을 모두 제거한 후 시작
- 마지막 알파벳 z일 때 다시 첫 알파벳 a로 돌아가는 순회 구조는 나눈 나머지(%)를 구해서 가능
- Set을 쓰면 요소를 삭제하기 쉬워지고, 중복을 없앨 수 있다.
전체 알파벳 문자열을 Set 자료 구조로 생성
skip 문자열을 배열로 바꾼 뒤 순회하며 알파벳 Set에서 skip 문자 제거
index가 더해진 최종 인덱스 구하기: s 문자열에서 하나씩 꺼낸 문자를 배열로 바꾼 알파벳 Set에서 인덱스를 찾고
index를 더해서 최종 인덱스(= index만큼 뒤의 알파벳의 위치)를 구함
index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아오기: 구한 최종 인덱스를 알파벳 배열의 전체 길이로 나눈 '나머지'를 구함
알파벳 전체 배열에서 '나머지' 인덱스를 찾아 answer 문자열에 추가
[ 나머지 연산자를 순환에 활용하는 원리 ]
skip을 제외한 총 22개 알파벳 중 index를 더한 최종 인덱스가 22(마지막 알파벳)가 되었을 경우,
전체 알파벳 갯수인 22로 나누면 나머지가 0, 즉 맨 처음 원소('a')를 가리키게 된다.
** 이틀 간 면접이 2회 있어서 7/17 하루는 예전 코테 풀이를 업로드합니다.
정말 좋은 글 감사합니다!