[백준]1267번: 핸드폰 요금

이진솔·2024년 9월 11일
0

풀이

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());

        int ys = 0;
        int ms = 0;

        for (int i = 0; i < N; i++) {
            int call = Integer.parseInt(st.nextToken());
            ys += ((call / 30) + 1) * 10;
            ms += ((call / 60) + 1) * 15;
        }

        StringBuilder sb = new StringBuilder();
        if (ys > ms) { // 민식 요금제가 더 저렴할 경우
            sb.append("M ").append(ms);
        } else if ( ys == ms ) {
            sb.append("Y M ").append(ms);
        } else {
            sb.append("Y ").append(ys);
        }

        System.out.println(sb);
    }

}
  1. n: 통화 횟수 입력
  2. ys, ms: 각 요금제에 맞게 계산하여 출력


틀린 코드

for (int i = 0; i < N; i++) {
            int call = Integer.parseInt(st.nextToken());
            ys += ((call / 30) + ((call % 30) > 0 ? 1 : 0)) * 10;
            ms += ((call / 60) + ((call % 60) > 0 ? 1 : 0)) * 15;
}
  1. 정답 코드는 시간과 관계없이 +1을 더한 채로 계산
  2. 틀린 코드는 나머지가 있을 경우에만 +1
profile
성장하기

0개의 댓글