TIL/kotlin 알고리즘
kotlin 프로그래머스 lv1 모의고사
crablo
2024. 2. 8. 14:16
728x90
해당문제를 보자마자 수포자들찍는 방식이 옛날 초등학교때
숫자의 규칙을 찾는것처럼 생겼다는 생각이 들었다.
1번 수포자는 1,2,3,4,5 로 순환되는 숫자의 형태로 찍고 있고,
2번 수포자는 2,1,2,3,2,4,2,5... 이런식으로 8번찍 반복된다.
3번 수포자도 위의 사람들과 같이
3,3,1,1,2,2,4,4,5,5.. 10개씩 순환된다.
그래서 각각 배열을 만들었다.
그 후 answer값과 supoja 리스트값들을 비교하면서 count 하면 될것 같았다.
새로운 맵을 초기화한 후
answer 만큼 반복하면서 키 1 2 3 에 카운팅을 하기로 했다.
answers는 맵이 아니기 때문에 count를 바로 할 수 없었다,
그래서 withIndex()함수를 사용해서
index와 value값을 사용할 수 있었는데
for문안에서 (index,answer)는 내가 지정한
answers의 인덱스와 value를 변수로 지정한것이다.
그 후 if문안에서 supoja들의 index를 supoja들의 배열 길이만큼 나눈 나머지
만큼씩 규칙이 정해지고 그 값들을 answer과 비교한 후
scores각각의 키값에 비교한 후 같은 값들을 1씩 더해나간다.
그 후 scores 안에서 최고값은 maxScore에 저장하고
scores의 최곳값을 filter 및 정렬한다.
728x90