프로그래머스 배열 회전시키기 문제

 

이 문제만 한시간 넘게봤다... 아무리 머리로 코드를 돌려봐도 로직이 이상하지 않다고 생각했다... 그래서 참지 못하고 gpt를 돌렸다. gpt 풀이는 LinkedList를 사용해서 시간복잡도를 줄이고 if문을 되게 간단하게 수정해주었다. 처음 보는 풀이 이기도 하고 리스트에서 처음과 마지막 문자를 빼고 넣고 하기에 좋은 방법인것 같아서 기억하기로 했다. gpt는 간단하고 좋은 방향으로 수정해줄 뿐 내 풀이가 어디가 잘못되었는지는 알려주진 않았다.
결론적으로 첫번째 if문 newList.add에서 바로 리스트 끝자리를 불러 오는게 아니라 newList.get 메소드를 통해야지
테스트 1번, 3번이 통과되는 걸 확인할 수 있었다. 어떤 테스트 케이스인지도 모르고 newList.add로 바로 끝자리를 불러오는게 왜 틀린지는 정확히 모르겠지만 리스트 요소값을 불러올때는 get메소드를 무조건 써야겠다는 것을 배웠다. 또, 배열 중간에 add로 값을 삽입하는 게 기본적으로 성능이 저하되기때문에 get메소드를 사용하는게 좋을 것 같다.

 

첫풀이

 

 

gpt 풀이
최종 풀이