개인적인 기준으로 꽤 어렵다고 느껴졌던 문제이다. 어렵다기 보다는 문제가 많이 헷갈린쪽이 더 맞는거같다. 문제가 요구하는 해결방법은 알았지만 구현하는 과정이 많이 헷갈렸고 단순 조합 문제라고 생각하기에는 다른 유형의 문제였다. 풀이를 참고했고 이 문제또한 여러번 다시풀면서 나 혼자 구현할수 있게 되었다.
처음 과정은 숫자에 있는 번호표를 전부 맵으로 집어넣고 조합을 만들 임의에 스트링 (add) 를 만들었다. 여기서 내가 헷갈렸던건 처음 2번 digit 안에있는 숫자를 조합하기 위해서 i를 index로 지정해줘야할까?라는 고민이었다. 그러나 그렇게 설정을 하게 되면 3번 digit안에있는 숫자와 조합을 이루는 과정에서 문제가 생기는걸 알았고 i인덱스는 그냥 말그대로 알파벳을 전부 루프 해주는 인덱스로만 사용해야된다고 생각했다. index변수는 첫번째 알파벳을 조합에 시작으로 넣고 그 다음 알파벳을 조합해줄때 써야하는 인덱스로넣었고 그 결과 테스트케이스를 전부 통과했다.
설명 자체도 어려운 backtracking 문제지만 계속 혼자 풀어보면서 깨닫는게 가장 좋은거같다.
배운점:
1. for loop을 쓰는것을 두려워하지말자
2. 문제는 많이 풀어봐야한다.