2024. 3. 5. 20:53ㆍ내일배움캠프
오늘도 재밌는 알고리즘 하나를 가지고왔다.
오늘 풀어볼 문제는
K번째 수 정렬
문제 설명은 이렇다
![](https://blog.kakaocdn.net/dn/boJCXE/btsFy9W2NxW/vt54KvC8Kx7RpIkDAIn6WK/img.png)
음 문제가 좀 복잡하다
문제 설명을 보면 이해가 좀 괜찮게 되는데
![](https://blog.kakaocdn.net/dn/udtzM/btsFzeKGpSs/RB1fupo9jFfFvZYR4Uw6j1/img.png)
아하 우리가 필요한건 그러면 commands[a,0],[a,1],[a,2] 라는 것이다
array의 array[commands[a,0]) 부터 [a,1]까지 담아두고 정렬한번 해준뒤에 [a,2]번째 인덱스를 쏙쏙 뽑아서
주면 된다는 것이다.
그렇다면 commands의 a번째의 0,1,2를 뽑아와야겠지
![](https://blog.kakaocdn.net/dn/cGBzaR/btsFscHGvW8/JhvaW68x0TAaiiZm2RrQSK/img.png)
일단 정수 3개를 만들어준다 이곳에는 commands의 0,1,2를 뽑아서 넣어줄 생각이다.
![](https://blog.kakaocdn.net/dn/5Y0YL/btsFuNggtx7/opvV5CExtY2C1Wy6ivh7Lk/img.png)
반복문을 만들어줄껀데 GetLength()를 이용하면 commands의 지정된 차원에 있는 요소의 길이를 가져올 수 있다.
![](https://blog.kakaocdn.net/dn/cbKYri/btsFxVSsWqE/72HyYsUKsEb6wI5PXpcXDk/img.png)
즉 입출력 예를 보면 빨간색 동그라미 친 부분의 갯수를 가져올 수 있다는 거다.
![](https://blog.kakaocdn.net/dn/bWOchM/btsFywkBp5Q/wQEuOxzPHuzfOkMBtZrlfK/img.png)
다행이 문제가 친절하게도 원소의 길이가 3이라고 하는 친절한 제한까지 두었기 때문에 편하게 0번째 1번째 2번째로
i,j,k의 값을 가져올 수 있다.
![](https://blog.kakaocdn.net/dn/BYbU4/btsFuGOYVO2/n7nrc6hTmKkApbqdorlmdk/img.png)
이런식으로 반복문에서 i,j,k의 값을 친절하게 뽑아올 수 있고
![](https://blog.kakaocdn.net/dn/w9U8p/btsFygIZ9FB/1KgO8xOOxVIyxtSVQ53eMk/img.png)
뽑아온 수를 담아줄 배열 하나를 또 만들어주자
![](https://blog.kakaocdn.net/dn/bqui80/btsFAEWrYNO/5M2ZzC4BGwW30aGVk0LF3k/img.png)
지금까지의 진행상황이다 왜 +1을 해줬냐면 예제에서처럼 2,5,3이면 2번째에서부터 5번째까지
즉 4개의 인덱스를 temp에 넣어줘야하기때문에 5-2+1 이렇게 temp의 크기를 지정해준다.
![](https://blog.kakaocdn.net/dn/5FThF/btsFwAAW32i/a6e4WNs7wOxZBipUMGuJVK/img.png)
반복문 안에 반복문을 다시 하나 넣어준다 이번엔 아까 길이를 정해준 temp의 길이까지 반복문을 돌려줄껀데
이 반복문 안에선 temp에 array의 i번째부터 j번째까지를 다 넣어줄꺼다
![](https://blog.kakaocdn.net/dn/dAne1P/btsFuJrq3J4/xuih8FisnoMAc60oQk1afK/img.png)
반복문이 끝나서 값이 들어있는 temp를 정렬한번해주고
![](https://blog.kakaocdn.net/dn/QTdA1/btsFt5g33Jp/K1zEDBxoOxtBDDrpg23Y10/img.png)
정렬된 temp의 k번째 인덱스를 넣어준다 배열은 0부터 시작하니깐 k-1번째가 되겠다
![](https://blog.kakaocdn.net/dn/AV8O8/btsFydrXzq6/sqeTAUedeLsmmD07m7DCzk/img.png)
그렇다면 전체적인 코드는 이렇게 될꺼고 해당 반복문이 끝날때
값이 잘 들어간 answer을
![](https://blog.kakaocdn.net/dn/caVtz7/btsFA8bZH7W/9jYReemULtv4bTkMXkTUr0/img.png)
리턴해주면 문제는 해결될것이다!!
![](https://blog.kakaocdn.net/dn/bncAOi/btsFz7q6TIy/lPpFlpvSlzhHgR0kkyNtZ1/img.png)
성공!!
오늘도 재밌는 알고리즘 문제 하나를 해결해보았다.
3월 5일 TIL은 여기서 마치도록 하겠다
'내일배움캠프' 카테고리의 다른 글
240307-TIL (0) | 2024.03.07 |
---|---|
240306-TIL (0) | 2024.03.06 |
240304-TIL (0) | 2024.03.04 |
240229-TIL (0) | 2024.02.29 |
240228-TIL (0) | 2024.02.28 |