[LeetCode] Find Smallest Letter Greater Than Target

아르당·2026년 2월 21일

LeetCode

목록 보기
163/211
post-thumbnail

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

Problem

오름차순으로 정렬된 문자 배열 letters와 문자 target이 주어진다. letters에 최소 두 개 이상 서로 다른 문자가 포함된다.
letters에서 target보다 사전순으로 크고 가장 작은 문자를 반환해라. 그러한 문자가 존재하지 않으면 문자 집합의 첫 번째 문자를 반환해라.

Example

#1
Input: letters = ["c", "f", "j"], target = "a"
Output: "c"
Explanation: letters에서 'a'보다 사전순으로 크고, 가장 작은 문자는 'c'이다.

#2
Input: letters = ["c", "f", "j"], target = "c"
Output: "f"
Explanation: letters에서 'c'보다 사전순으로 크고, 가장 작은 문자는 'f'이다.

#3
Input: letters = ["x", "x", "y", "y", "z", "z"], target = "z"
Output: "x"
Explanation: letters에서 'z'보다 사전순으로 크고, 가장 작은 문자는 없어서 letters[0]을 반환한다.

Constraints

  • 2 <= letters.length <= 10^4
  • letters[i]는 영어 소문자이다.
  • letters는 오름차순으로 정렬되어있다.
  • letters는 최소 두 개의 다른 문자가 포함된다.
  • target은 영어 소문자이다.

Solved

class Solution {
    public char nextGreatestLetter(char[] letters, char target) {
        char result = letters[0];
        boolean flag = false;

        for(char letter : letters){
            if(!flag){
                if(letter > target){
                    result = letter;
                    flag = !flag;
                }
            }else{
                if(letter > target && letter < result){
                    result = letter;
                }
            }
        }

        return result;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글