2024. 3. 18. 23:54ㆍ내일배움캠프
3월 18일
오늘도 재밌는 알고리즘 문제로 돌아왔다.
명예의 전당
문제 설명 드가자잇!
알고리즘 문제는 문제 설명을 잘 읽고 이해하는게 중요한거 같다.
나에게 주어진 초기 솔루션 해결하기 위해 열심히 커스텀 해보자
일단 answer에 들어갈 길이를 지정해주는데 score의 길이는 전국노래자랑이 진행되는 일수라고 보면 된다.
그렇기에 answer의 길이는 score의 길이만큼 숫자가 들어가니 score.Length로 지정해주자
그 다음은 temp라는 int 리스트를 하나 만들어 준다. temp는 명예의 전당에 등록될 녀석들이 들어가게 되며
새로들어올 Score의 점수와 temp[0]번 인덱스의 값을 비교해서 더 작은 녀석을 temp[0]에 위치시킬 생각이다.
전국노래자랑을 시작부터 끝까지 책임질 반복문 하나를 만들었다.
반복문 안에 중첩 if문을 만들어준다 temp의 길이가 k와 같으면 if문 안으로 들어가 로직을 처리하게 된다.
핵심은 Continue이다 해당일수에 temp의 첫번째 인덱스가 새로 들어올 score보다 크다면 answer에 넣어주자
그리고 Continue를 만나 밑의 temp.RemoveAt(0)을 만나 temp의 0번 인덱스를 지워버린다.
if문을 빠져나와 다시 temp에 방금받은 점수를 넣어주고 Sort()를 이용해 정렬해주자
정렬을 마치고 나면 answer[i]에 temp[0]을 넣어주도록 하자.
그렇게 반복문을 전부 돌고 전국노래자랑이 끝나면 answer에는
명예의 전당 최하위 점수들만 쌓이게 되는데
바로 리턴해주도록하자
통과!
가면 갈수록 문제 설명이 복잡해지고 양도 많아진다.
중간중간 함정이 껴있는것도 있고 생각하지 않아도 될 부분을 생각해서 문제를 빙 돌아가는 경우도 생긴다.
좀 더 많은 문제를 경험해보고 열심히 풀어봐야 문제를 보고 바로 뭘 이용해서 풀어야할지 딱 감이 오려나?
3월 18일 TIL은 여기서 마치도록 하겠다
'내일배움캠프' 카테고리의 다른 글
240320-TIL (0) | 2024.03.20 |
---|---|
240319-TIL (0) | 2024.03.19 |
240315-TIL (0) | 2024.03.15 |
240314-TIL (0) | 2024.03.14 |
240313-TIL (0) | 2024.03.13 |