728x90
문제를 설명해보자면 음식의 종류가 3가지가 있고 food 배열에서 i는 음식 종류이다.
food[i]는 음식을 count한 값이다.
이 예시를 보면, food 배열이 주어질때 result로 food[i]번만큼
append해주면 된다고 생각했다.
그렇지만 모두 다 append하지 않고 두 선수가 각자 같은양을 나눠 갖기 때문에
짝수번이면 한사람당 repeat(count/2)만큼 반복하면되고
홀수번이면 (count-1)/2 만큼 반복하면 된다고 생각했다.
그래서 코드를 아래와 같이 작성했다.
두 선수가 양쪽 끝에서 시합을 하기때문에 어차피 같은 양만큼 먹는다고 설명되어서 reverse를 사용했다.
forEachIndexed 를 사용해서 food 배열의 index와 count(배열의 value)를 간단히 나타낼 수 있었다.
이 함수를 간단히 예시를 들면서 설명해보면
예를들어 배열
val numbers = listOf(1,2,3,4,5)
이때 numbers.forEachIndexed{index,value ->
println(
}
number 배열에 숫자를 담아둔 후 index와 value값을 출력해보면
다음과 같은 값이 출력된다.
앞으로 for문 대신에 사용하면 코드가 간결해질것 같다.
728x90
'TIL > kotlin 알고리즘' 카테고리의 다른 글
kotlin 프로그래머스 lv1 카드 뭉치 (0) | 2024.02.06 |
---|---|
kotlin 프로그래머스 lv1 2016년 (0) | 2024.02.06 |
kotlin 프로그래머스 lv1 가장 가까운 같은 글자 (0) | 2024.02.02 |
kotlin 프로그래머스 lv1 두 개 뽑아서 더하기 (0) | 2024.02.02 |
kotlin 프로그래머스 lv1 K번째수 (0) | 2024.02.01 |