문제는 이거고
https://programmers.co.kr/learn/courses/30/lessons/43165
이진트리 + bfs로 풀었음
아래 사진은 예제로, numbers가 [4,1,2,1], target이 4로 주어지는데,
나는 이걸 [현재 num, level]을 저장을 해주었고,
level === numbers.length이면 마지막 노드이므로 그 때 target이랑 비교해서 답을 구하는 식으로 했어..
코드는 다음과 같아.....
근데 내가 볼때는 아무리 봐도 시간초과 날 일이 전혀 없어보이는데...
근데 내가 저 코드에서 고려해주지 못한 케이스가 있는거 같더라구...? 2개가 시간초과가 나더라구
그래서 무한 루프되는거같은데...
아니 근데 내가 볼땐 아무리 봐도 반례를 못찾겠는데...... 어느부분에서 저 지랄나는걸까?
아오............... 일단 자고 나서 다시 풀어봐야겟다
20개면 2^21개 경우의수네 ㅇㅅㅇ
Queue 사이즈가 너무 커져서 shift할때 시간 너무 많이 잡아먹는거 아닌가 ㅇㅅㅇ??
Bfs보단 dfs랑 백트래킹쪽이 낫지않을까 싶은데 ㅇㅅㅇ.. -x 넣어보고 쭉 가서 안되면 다시 돌아와서 다시 +x넣고 쫙 돌려보고
아하......... 나는 저 문제가 모든 노드를 방문해야하기 때문에 당연히 저렇게 풀어도 ㅇㅋ 할줄 알았는데... 아 생각해보니 그러겟구나...
아하.... 우우... 아기프공이 너무 댕청댕청해..... 그래서 다들 dfs로 풍엇구나... 난 당연히 모든 케이스를 구해주어야 하는건줄 아랏서.....
큐 사이즈가 너무 커서 shift 할때 시갖잡아먹는건, 다시 인덱스 정렬 해주는데 시간이 오래걸린다는 말이징!?!?!