[토스 NEXT] 2022년 코딩테스트 기출문제

이지현·2023년 9월 15일
0

Algorithm

목록 보기
81/81
post-thumbnail

✔️ Problem URL

[토스 NEXT] 2022년 코딩테스트 기출문제


✔️ Problem

만점자가 가장 많은 문제 : Core Banking/Server 직군

출제자의 한마디

이 문제는 만점자가 1435명으로 가장 많았는데요. 실제로도 난이도가 가장 낮은 문제로, Server 직군에 지원하는 지원자라면 반드시 맞추어야 하는 문제로 생각하고 출제했어요. 문자열과 반복문을 이용해 프로그래밍할 수 있는지 확인하는 기초적인 문제에요.
문제명 : 멋쟁이 숫자
숫자로만 이루어진 문자열 s가 있습니다. (0 <= s.length < 1,000)
아래의 조건을 모두 만족하는 숫자를 '멋쟁이 숫자'라고 합니다.

[조건]

  1. 길이가 3인 s의 substring을 10진수로 읽은 숫자이다.
  2. 각 자리의 숫자가 모두 같다.

구현사항

문자열s를 입력받아 멋쟁이 숫자를 리턴하는 함수를 만들어주세요.

만약, 멋쟁이 숫자가 여러 개 존재하는 경우에는 가장 큰 수를 리턴합니다.
만약, 가장 큰 멋쟁이 숫자가 000이라면 0을 리턴합니다.
만약, 멋쟁이 숫자가 존재하지 않다면 -1을 리턴합니다.

예시 문제

예시 1

입력: s = “12223”
출력: 222

예시 2

입력: s = “111999333”
출력: 999
설명: 111, 333, 999 3가지가 존재하고 999가 제일 크므로 999를 리턴합니다.

예시 3

입력: s = “123”
출력: -1


✔️ Code

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;
    }
}

profile
2023.09 ~ 티스토리 이전 / 2024.04 ~ 깃허브 블로그 이전

0개의 댓글