
내가 생각했을때 문제에서 원하는부분
입력의 첫 줄에 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();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.