240305-TIL

2024. 3. 5. 20:53내일배움캠프

오늘도 재밌는 알고리즘 하나를 가지고왔다.

 

오늘 풀어볼 문제는

 

 

K번째 수 정렬

더보기

문제 설명은 이렇다

 

음 문제가 좀 복잡하다

 

문제 설명을 보면 이해가 좀 괜찮게 되는데

 

아하 우리가 필요한건 그러면 commands[a,0],[a,1],[a,2] 라는 것이다

 

array의 array[commands[a,0]) 부터 [a,1]까지 담아두고 정렬한번 해준뒤에 [a,2]번째 인덱스를 쏙쏙 뽑아서

 

주면 된다는 것이다.

 

그렇다면 commands의 a번째의 0,1,2를 뽑아와야겠지

 

일단 정수 3개를 만들어준다 이곳에는 commands의 0,1,2를 뽑아서 넣어줄 생각이다.

 

 

반복문을 만들어줄껀데 GetLength()를 이용하면 commands의 지정된 차원에 있는 요소의 길이를 가져올 수 있다.

 

즉 입출력 예를 보면 빨간색 동그라미 친 부분의 갯수를 가져올 수 있다는 거다.

 

 

다행이 문제가 친절하게도  원소의 길이가 3이라고 하는 친절한 제한까지 두었기 때문에 편하게 0번째 1번째 2번째로

 

i,j,k의 값을 가져올 수 있다.

 

 이런식으로 반복문에서 i,j,k의 값을 친절하게 뽑아올 수 있고

 

뽑아온 수를 담아줄 배열 하나를 또 만들어주자

 

 

지금까지의 진행상황이다 왜 +1을 해줬냐면 예제에서처럼 2,5,3이면 2번째에서부터 5번째까지

 

즉 4개의 인덱스를 temp에 넣어줘야하기때문에 5-2+1 이렇게 temp의 크기를 지정해준다.

 

 

반복문 안에 반복문을 다시 하나 넣어준다 이번엔 아까 길이를 정해준 temp의 길이까지 반복문을 돌려줄껀데

 

이 반복문 안에선 temp에 array의 i번째부터 j번째까지를 다 넣어줄꺼다

 

반복문이 끝나서 값이 들어있는 temp를 정렬한번해주고

 

정렬된 temp의 k번째 인덱스를 넣어준다 배열은 0부터 시작하니깐 k-1번째가 되겠다

 

 

그렇다면 전체적인 코드는 이렇게 될꺼고 해당 반복문이 끝날때

 

값이 잘 들어간 answer을 

 

리턴해주면 문제는 해결될것이다!!

 

 

성공!!

 

오늘도 재밌는 알고리즘 문제 하나를 해결해보았다.

 

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