© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 2953 - 나는 요리사다

2024-01-13
BOJ
브론즈 III
java
원본 문제 보기
수학
구현
사칙연산

문제

BOJ 2953 - 나는 요리사다

5명의 참가자가 각각 4개의 점수를 받을 때, 총점이 가장 높은 참가자의 번호와 총점을 출력하라.

입력

5줄에 걸쳐 각각 4개의 점수가 주어진다.

출력

우승자의 번호(1~5)와 총점을 공백으로 구분하여 출력한다.

예제

입력출력
5 4 4 5 5 4 4 4 5 5 4 4 5 5 5 4 4 4 4 54 19

풀이

5명의 점수를 합산하며 최댓값과 해당 인덱스를 추적한다.

  1. 5줄을 읽으며 각 줄의 4개 점수를 합산한다
  2. 현재 합이 기존 최댓값보다 크면 최댓값과 인덱스를 갱신한다
  3. 최종 우승자 번호(1-indexed)와 총점을 출력한다

핵심 아이디어: 고정 5명이므로 단순 순회로 최댓값을 찾는다.

코드

package day749;
 
import java.io.*;
import java.util.*;
 
public class Day711BOJ2953나는요리사다 {
  static StringTokenizer st;
 
  static int sum(String score) {
    int result = 0;
    st = new StringTokenizer(score);
    while (st.hasMoreTokens())
      result += Integer.parseInt(st.nextToken());
    return result;
  }
 
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int idx = 0, ans = 0;
    for (int i = 0; i < 5; i++) {
      int sum = sum(br.readLine());
      if (ans < sum) {
        ans = sum;
        idx = i + 1;
      }
    }
    System.out.println(idx + " " + ans);
  }
}

복잡도

  • 시간: O(1) — 고정 5명 × 4점수 = 20번 연산
  • 공간: O(1) — 상수 변수만 사용