recursion(2)
-
[Linked List] Add Two Numbers
예시1을 보면 문제 이해가 쉬운데, 두개의 Linked List가 인풋으로 들어오면, 각각 순서를 바꿔서 저장한 후 int로 만들어 이를 더한다. 더한 값을 다시 Linked List로 만드는데, 얘 역시 거꾸로 만든다 이 문제는 reverse연산인데, 원래 942+476으로 연산해야 할 input이 거꾸로 들어온다. 그렇다면 들어온 리스트 순서 그대로 연산한다면 어떤 부분을 고려해야 할까? 자릿수대로 더해주고 결과 linked list에 거꾸로 집어넣으면 된다. 그런데 문제는 두 노드의 합이 10이 넘어가는 경우다 10이 넘어가면 1을 다음 자릿수로 넘겨준다. 따라서 이 문제의 index는 4개가 필요하다. List를 만들고 우리는 List.next를 결과로 리턴해줄것이다. 이 List에는 연산값이 담..
2021.04.06 -
[Recursion] Letter Combinations of a Phone Number
전화기의 숫자마다 알파벳이 매핑되어 있는데, 숫자 조합을 선택했을 때 숫자에 매핑된 알파벳으로 만들 수 있는 조합 을 찾는 문제다 기본적으로 backTracking문제다 keyMap이라는 딕셔너리에 매핑관계를 정의한다. 이후 backtrack이라는 함수를 만들었는데, 이는 path와 i를 인자로 갖는다. 콘솔을 다음과 같이 찍어 확인해보았다. 각 digit을 key로 두고 keyMap을 참고하여 letter를 찾아낸다. 그리고 letter 하나당 다음 조합을 재귀로 돌리는 방식이다. 이때 path의 조합이 모두 구해지면 digit의 길이와 같아질 것이므로 경계값을 걸어둔다
2021.03.31