백준 공통교육과정

KIMYEONGJUN·2025년 12월 28일
post-thumbnail

문제

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

첫째 줄에 교양 과목의 교과목번호를 나타내는 문자열이 입력으로 주어진다.
이 문자열의 길이는 항상 7 또는 8이다.
첫 번째 문자는 알파벳 대문자 F, C, V, E 중 하나이고, 네 번째 문자는 .(마침표)이다.
2, 3, 5, 6, 7$번째 문자는 각각 0부터 9까지의 숫자로 이루어져 있다.
만약 문자열의 길이가 8인 경우 마지막 문자는 대문자 L이다.
서울대학교에 실제로 존재하는 교과목번호가 아니더라도, 입력 형식만 올바르면 입력으로 주어질 수 있다.
이 경우도 앞서 설명한 규칙에 따라 네 영역 중 어느 영역에 속해 있는지 올바르게 판정해야 한다.

주어진 교양 과목이 학문의 토대에 속해 있으면 Foundation, 지성의 열쇠에 속해 있으면 Claves, 베리타스에 속해 있으면 Veritas, 지성의 확장에 속해 있으면 Exploration을 출력한다.

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

main 메서드:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));: System.in(표준 입력)으로부터 데이터를 읽어오기 위한 BufferedReader 객체를 생성한다.
String courseNumber = br.readLine();: 사용자로부터 한 줄의 문자열(교과목 번호)을 입력받아 courseNumber 변수에 저장한다. 
문제에 따라 문자열의 길이가 7 또는 8이 된다.
char firstChar = courseNumber.charAt(0);: 입력받은 courseNumber 문자열에서 첫 번째 문자(인덱스 0)를 추출하여 firstChar 변수에 char 타입으로 저장한다. 
이 문자가 'F', 'C', 'V', 'E' 중 하나가 될거다.
switch (firstChar): firstChar 변수의 값에 따라 조건적으로 다른 코드를 실행하는 switch 문을 사용한다.
case 'F': System.out.println("Foundation"); break;: firstChar가 'F'이면 "Foundation"을 출력하고 switch 문을 종료한다.
다른 case 문들도 동일하게 해당 문자에 맞는 영역 이름을 출력하고 종료한다.
br.close();: BufferedReader 사용이 끝났으므로 스트림을 닫아 자원을 해제한다.

코드로 구현

package baekjoon.baekjoon_31;

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

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

        // 과목 번호 문자열을 읽어옵니다.
        String courseNumber = br.readLine();

        // 문자열의 첫 번째 문자를 추출합니다.
        char firstChar = courseNumber.charAt(0);

        // 첫 번째 문자에 따라 해당 영역의 이름을 출력합니다.
        switch (firstChar) {
            case 'F':
                System.out.println("Foundation");
                break;
            case 'C':
                System.out.println("Claves");
                break;
            case 'V':
                System.out.println("Veritas");
                break;
            case 'E':
                System.out.println("Exploration");
                break;
        }

        br.close();
    }
}

마무리

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

profile
Junior backend developer

0개의 댓글