[LeetCode] Two Furthest Houses With Different Colors

아르당·2026년 8월 4일

LeetCode

목록 보기
444/579
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

집 n개가 일렬로 있고, 각 집은 아름답게 칠해져 있다. 길이가 n이고 인덱스가 0부터 시작하는 정수 배열 colors가 주어지고, colors[i]는 i번째 집의 색을 나타낸다.
서로다른 색상을 가진 두 집 사이의 최대 거리를 반환해라.
i번째 집과 j번째 집 사이의 거리는 abs(i - j)이고, abs(x)는 x의 절대값이다.

Example

#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

Constraints

  • n == colors.length
  • 2 <= n <= 100
  • 0 <= colors[i] <= 100

Solved

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;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글