백준 Welcome to SMUPC!

KIMYEONGJUN·2026년 2월 22일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫째 줄에 N(1 ≤ N ≤ 1000000)이 주어진다.

첫째 줄에 N번째에 해당하는 글자를 출력한다.

내가 이 문제를 보고 생각해본 부분

BufferedReader를 사용해 빠르게 입력을 받는다.
label 변수에 문제에서 주어진 문자열 "WelcomeToSMUPC"를 저장한다.
입력받은 정수 N에 대해 N % 13 연산을 한다.
이 나머지가 0이면 문자열의 마지막 글자 'C'가 위치하는 13번째 글자이므로 13으로 설정한다.
출력할 글자를 문자열 label에서 index - 1 위치에서 가져와 출력한다. (Java 문자열 인덱스는 0부터 시작)
마지막에 리소스 누수를 막기 위해 br.close()로 스트림을 닫는다.

코드로 구현

package baekjoon.baekjoon_33;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 백준 29699번 문제
public class Main1306 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String label = "WelcomeToSMUPC";  // 13글자 문자열
        int N = Integer.parseInt(br.readLine());

        int index = N % label.length();
        if (index == 0) {
            index = label.length();
        }

        // 배열 인덱스는 0부터 시작하므로 index-1 사용
        System.out.println(label.charAt(index - 1));
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글