[백준/JAVA] 1267번 핸드폰 요금

정은아·2024년 4월 26일

[알고리즘] 수학 모음

목록 보기
63/152
post-thumbnail

문제

내 풀이

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

public class Main extends Exception {
    public static void main(String[] args) throws IOException {
        // 영식 요금제 : 30초마다 10원씩 부가
        // 민식 요금제 : 60초마다 15원씩 부가
        // 동호가 어느 요금제를 이용하는게 더 좋은지?
        // Y or M 출력 후, 요금 얼마 나왔는지 구하기

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int num = Integer.parseInt(br.readLine());

        StringTokenizer st = new StringTokenizer(br.readLine());
        int y = 0;
        int m = 0;

        for (int i = 0; i < num; i++) {
            int call = Integer.parseInt(st.nextToken());
            int copyCall = call;

            while (true){
                if (call < 0){
                    break;
                }else {
                    y += 10;
                    call -= 30;
                }
            }

            while (true){
                if (copyCall < 0){
                    break;
                }else{
                    m += 15;
                    copyCall -= 60;
                }
            }
        }

        int answer = Math.min(y, m);

        if (y == m){
            sb.append("Y M " + y);
        }else if(answer == y){
            sb.append("Y " + y);
        }else{
            sb.append("M " + m);
        }

        System.out.println(sb.toString());
    }
}

느낀점

이 문제는.. 브론즈이기 때문에 시간 초과를 염두에 두지 않고ㅎㅎ
for문 안에 while문을 두 개나 돌렸다 하하
맞췄으면 됐지 뭐~

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글