오늘은 코딩 테스트가 있어서 열심히 보았는데, 시간 초과가 난 문제가 있었다!
내가 문제를 약간 혼동해서 갑자기 깨달음을 얻은 시점이 15분 남았을 때였다!
맨 끝이면
루프 -> 확인확인
맨 앞이면
루프 -> 확인확인
중간이면
앞쪽 -> 루프 -> 확인확인
뒤쪽 -> 루프 -> 확인확인
이걸 시간 복잡도를 개선하기에는 시간이 부족했던 나...
어쨌든 루프문 때문에 시간 초과에 걸렸으므로 떨어졌을 것으로 예상하나, 조금 더 노력해야겠다.
큰 회사라 시간 초과 관련 문제가 있었으니, 관련해서 공부해야겠다고 생각한다.
https://wjswhdgur123.tistory.com/74
https://coding-factory.tistory.com/608
* 뒷북
잠시 물 마시면서 생각해보니 어제 쎄빠지게 구현한 이진 탐색 트리로 풀어도 되는 거였다!!
어제의 코딩테스트는 성공적이었던 이유 : 그냥 어제는 이진 탐색 트리를 복습한 김에 모든 문제를 이진 탐색 트리로 풀어 보았다.
'오늘은 그냥 for 문으로 풀고 싶은 기분' 이 실패의 어머니였던 것이다!
였는데 나중에 찾아보니까 이중 for 문 쓴 경우에는 탈락하게 처리 해 놓은 경우가 많았나 보다. (https://deftkang.tistory.com/164)
딱히 이중 for 문 안 써도 됬었는데 아쉬움...
자료형이고 뭐고 이중 for문이 원수였다!
예로부터 내려온 효율 없고 가독성 좋은 우리의 이~삼중 for문
http://www.gisdeveloper.co.kr/?p=1916
내일 코테에는 이걸 해본다... (매일매일 다양하게 해보는 프로그래머스 코테 (실전편))
면접하고 코테를 자주 보니까 정답을 잘 맞추게 되었지만 여전히 문제에 꼬아 놓은 것은 마음에 안 드는 나.
신비하게도 do while로 쓰니까 다 통과됨...
답글삭제실질적으로 속도가 줄어든 건 아닌데 for 문 여러 번 쓰는 게 programmers의 취지가 아니었던걸로...