문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
오름차순으로 정렬된 문자 배열 letters와 문자 target이 주어진다. letters에 최소 두 개 이상 서로 다른 문자가 포함된다.
letters에서 target보다 사전순으로 크고 가장 작은 문자를 반환해라. 그러한 문자가 존재하지 않으면 문자 집합의 첫 번째 문자를 반환해라.
#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]을 반환한다.
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;
}
}