열정가득한 개발자의 이야기/프로그래머스 문제

프로그래머스 코딩테스트 수열과 구간 쿼리 3

가문비나무 위의 독수리 2024. 2. 20. 19:41

 

프로그래머스 LV0

 

답안

 

솔직히 음.. 이런 문제는 뭔가 예전에 풀어본 적 있어서 별도의 새로운 배열을 만들고 잠시 그 값에 저장한 다음 기존의 값에 되돌려 주는 걸 알고 있었지만,,,

어떻게 표현해야할지 모르겠더라고요..

그래서 2중 for문으로 해봤는데 막막해서… 2시간 정도 생각해 보다가.. 구글링을.. 해봤습니다.. 흑흑..

뭔가 저의 문제는 생각은 나는데 그걸 표현을 못하는 것 같더라고요

이 마음.. 표현하고 싶은데 말로 표현 못하겠어 뭐 이런 느낌이랄까.

 

그래서 https://sun-dori.tistory.com/19 이 분의 tstory를 참고했습니다.

근데 식을 봤는데 너무 간단해가지고.. 그거 아시죠 간단한 게 더 어려운 거..

그래서 나의 친구 chat gpt와 함께.. 답안을 분석해 봤는데 제가 못 받아들이더라고요 호호

그래서 일일이 아이패드에 써가면서 for문을 돌려봤습니다.

 

 

일단 제가 헷갈렸던 게, arr [queries [i][0]]의 부분을 system.out.println으로 찍으면 제 생각엔 

queries의 0,1,1이 나와야 한다고 생각했는데 0,1,2가 나오더라고요

그래서 gpt한테 물어보니까 처음엔 0,1,1이 맞다고 해주더니 이상해서 0,1,2 아니냐고 물어보니 0,1,2가 맞다고 하고…

후… 그래서 더 헤매었습니다.

정답은 0,1,2가 맞고요 그건 외부에 arr []이 감싸고 있기 때문에 queries의 값은 arr의 자리를 의미하니까 queries의 0,1,1가 나타내는 arr의 0,1,1 자리의 값인 0,1,2를 가져와야 합니다. 

 

ex) arr [queries [0][0]]일 때 arr의 자리는 arr [0] 임, 그래서 값은 0을 나타냅니다, 그리고 arr [queries [0][1]] (arr [3] = 3)와 값을 바꿔줍니다.

즉, 최종적으로  0,1,2,3,4 -> 3,1,2,0,4 -> 3,4,1,0,2로 변합니다..

 

arr queries result
[0, 1, 2, 3, 4] [[0, 3],[1, 2],[1, 4]] [3, 4, 1, 0, 2]

 

후.. 어찌나 헷갈리는지…

정말… 죽는 줄 알았습니다.

근데 포기 안 할 거예요 

정말 누구에겐 쉬운 문제일 수 있지만, 처음부터 잘하면 무슨 재미겠습니까.

그러니 더 즐겁게 해 봐야죠 ㅎㅎ

(재미없고 싶다….)

 

참고 블로그 : https://sun-dori.tistory.com/19