출제자의 한마디
이 문제는 만점자가 1435명으로 가장 많았는데요. 실제로도 난이도가 가장 낮은 문제로, Server 직군에 지원하는 지원자라면 반드시 맞추어야 하는 문제로 생각하고 출제했어요. 문자열과 반복문을 이용해 프로그래밍할 수 있는지 확인하는 기초적인 문제에요.
문제명 : 멋쟁이 숫자
숫자로만 이루어진 문자열 s가 있습니다. (0 <= s.length < 1,000)
아래의 조건을 모두 만족하는 숫자를 '멋쟁이 숫자'라고 합니다.
문자열s를 입력받아 멋쟁이 숫자를 리턴하는 함수를 만들어주세요.
만약, 멋쟁이 숫자가 여러 개 존재하는 경우에는 가장 큰 수를 리턴합니다.
만약, 가장 큰 멋쟁이 숫자가 000이라면 0을 리턴합니다.
만약, 멋쟁이 숫자가 존재하지 않다면 -1을 리턴합니다.
입력: s = “12223”
출력: 222
입력: s = “111999333”
출력: 999
설명: 111, 333, 999 3가지가 존재하고 999가 제일 크므로 999를 리턴합니다.
입력: s = “123”
출력: -1
public class Solution {
public static void main(String[] args) {
System.out.println("예시 1 답 : " + solution("12223"));
System.out.println("예시 2 답 : " + solution("111999333"));
System.out.println("예시 3 답 : " + solution("123"));
}
public static int solution(String s) {
char[] arr = s.toCharArray();
int answer = -1;
for(int i = 0; i < s.length()-2; i++) {
if((arr[i] == arr[i+1]) && (arr[i+1] == arr[i+2])) {
answer = Math.max(answer, Integer.parseInt(s.substring(i, i+3)));
}
}
return answer;
}
}