문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
집 n개가 일렬로 있고, 각 집은 아름답게 칠해져 있다. 길이가 n이고 인덱스가 0부터 시작하는 정수 배열 colors가 주어지고, colors[i]는 i번째 집의 색을 나타낸다.
서로다른 색상을 가진 두 집 사이의 최대 거리를 반환해라.
i번째 집과 j번째 집 사이의 거리는 abs(i - j)이고, abs(x)는 x의 절대값이다.
#1
Input: colors = [1, 1, 1, 6, 1, 1, 1]
Output: 3
Explanation: 위 이미지에서 색 1은 파랑, 색 6은 빨강이다.
색이 다르고 먼 두 집은 집 0과 집 3이다.
집 0은 색 1이고, 집 3은 색6이다. 두 집 사이의 거리는 abs(0 - 3) = 3이다.
#2
Input: colors = [1, 8, 3, 8, 3]
Output: 4
Explanation: 위 이미지에서 색 1은 파랑, 색 8은 노랑, 색 3은 초록이다.
색이 다르고 먼 두 집은 집 0과 집 4이다.
집 0은 색 1이고, 집 4는 색 3이다. 두 집 사이의 거리는 abs(0 - 4) = 4이다.
#3
Input: colors = [0, 1]
Output: 1
class Solution {
public int maxDistance(int[] colors) {
int n = colors.length;
int max = 0;
for(int i = 0; i < n; i++){
if(colors[i] != colors[0]){
max = Math.max(max, i);
}
if(colors[i] != colors[n - 1]){
max = Math.max(max, n - 1 - i);
}
}
return max;
}
}