백준 스시

KIMYEONGJUN·2025년 12월 8일
post-thumbnail

문제

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

입력의 첫 줄에 N이 주어진다.
이후 i(1 ≤ i ≤ N)번째 줄에는 손님 i가 먹고 싶어하는 스시의 목록을 나타내는 문자열 Bi가 주어진다.
한 종류의 스시가 한 손님의 목록에 두 번 이상 속할 수 있음에 유의하라.

문제의 답을 나타내는 정수 하나를 출력한다.

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

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));: 표준 입력 스트림(키보드 입력 등)에서 데이터를 읽기 위한 BufferedReader 객체를 생성한다.
이를 통해 한 줄씩 문자열을 읽을 수 있다.
int N = Integer.parseInt(br.readLine());: 첫 번째 입력 줄에서 손님의 수 N을 읽어온다. 
br.readLine()은 문자열을 반환하므로, Integer.parseInt()를 이용해 정수형으로 변환해 N 변수에 저장한다.
int totalSushiCount = 0;: 셰프가 만들어야 할 스시의 총 개수를 저장할 totalSushiCount 변수를 0으로 초기화한다. 
이 변수가 최종 정답이 된다.
for(int i = 0; i < N; i++) { ... }: N명의 손님 각각의 스시 목록을 처리하기 위해 N번 반복하는 for 루프이다.
String sushiList = br.readLine();: 루프가 한 번 돌 때마다, 한 손님의 스시 목록을 나타내는 문자열 Bi를 읽어와 sushiList 변수에 저장한다.
totalSushiCount += sushiList.length();: sushiList.length()는 해당 문자열의 길이를 반환한다. 
이 길이는 손님이 먹고 싶어 하는 스시의 개수를 의미하므로, totalSushiCount에 누적하여 더한다.
System.out.println(totalSushiCount);: 모든 손님의 스시 목록 처리가 완료되면, 최종적으로 계산된 totalSushiCount 값을 콘솔에 출력한다. 
이것이 문제에서 요구하는 셰프가 만들어야 할 최소 스시 개수이다.
br.close();: 사용이 끝난 BufferedReader를 닫아서 시스템 자원을 해제한다.

코드로 구현

package baekjoon.baekjoon_31;

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

// 백준 20494번 문제
public class Main1230 {
    public static void main(String[] args) throws IOException {
        // 입력을 효율적으로 읽기 위해 BufferedReader를 사용합니다.
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // 첫 번째 줄에서 손님의 수 N을 읽어옵니다.
        // br.readLine()은 문자열을 반환하므로, Integer.parseInt()를 사용하여 정수로 변환합니다.
        int N = Integer.parseInt(br.readLine());

        // 셰프가 만들어야 할 총 스시의 개수를 저장할 변수를 선언하고 0으로 초기화합니다.
        int totalSushiCount = 0;

        // N명의 손님 각각의 스시 목록을 처리하기 위해 N번 반복합니다.
        for (int i = 0; i < N; i++) {
            // 각 손님이 먹고 싶어하는 스시 목록 문자열을 읽어옵니다.
            String sushiList = br.readLine();

            // 해당 스시 목록 문자열의 길이를 totalSushiCount에 더합니다.
            // 문자열의 각 문자가 스시 한 점을 의미합니다.
            totalSushiCount += sushiList.length();
        }

        // 모든 손님의 스시 목록 처리가 끝나면, 총 스시 개수를 출력합니다.
        System.out.println(totalSushiCount);

        // BufferedReader를 닫아 자원을 해제합니다.
        br.close();
    }
}

마무리

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

profile
Junior backend developer

0개의 댓글