Leetcode Java Minimum Cost to Move Chips to The Same Position
업데이트:
문제
코드
class Solution {
public int minCostToMoveChips(int[] position) {
int[] count = new int[2];
for (int p : position) {
count[p % 2]++;
}
return Math.min(count[0], count[1]);
}
}
결과
설명
- position에 있는 각 코인들을 아래의 규칙대로 하나의 위치에 모으기 위한 비용을 계산하는 문제이다.
- 현재 위치에서 2 칸을 앞뒤로 움직이는 경우, 비용을 0으로 계산한다.
- 현재 위치에서 1 칸을 앞뒤로 움직이는 경우, 비용을 1로 계산한다.
-
count는 홀수와 짝수 위치를 계산하기 위한 변수로, 2 크기의 정수 배열로 초기화한다.
-
position의 각 값을 순차적으로 짝수인지 홀수인지에 따라 count에 값을 넣어준다.
- 반복이 완료되면 짝수의 위치인 count[0]의 값과 홀수의 위치인 count[1]의 값 중 작은 값을 주어진 문제의 결과로 반환한다.
해설
- 위치의 값이 짝수인 값이 많은 경우, 짝수의 임의 한 지점 위치의 값을 앞뒤 인접한 위치까지 2칸 씩 비용 0으로 모아 홀수인 갯수만큼 이동시키면 된다.
- 위치의 값이 홀수인 값이 많은 경우, 홀수의 임의 한 지점 위치의 값을 앞뒤 인접한 위치까지 2칸 씩 비용 0으로 모아 짝수인 갯수만큼 이동시키면 된다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기