달마루
기획자에서 개발자로
달마루
전체 방문자
오늘
어제
  • 분류 전체보기 (334)
    • 기획 이야기 (3)
    • 개발자로 전향한 이유 (1)
    • Github Address (1)
    • 개발자, 그 여정 (11)
      • 기초특강 (4)
      • 국비학원 선정 (4)
      • BitCamp_수업내용 (1)
      • 학원 프로젝트 후기 (1)
      • 정보처리기사 (1)
      • 개발 이야기 (0)
    • 개념 창고 (126)
      • JAVA (50)
      • CS (1)
      • Database (27)
      • NetWork (2)
      • 자료 구조 (2)
      • React (8)
      • Spring (3)
      • JPA (1)
      • HTML & CSS (18)
      • JS (3)
    • algorithm (186)
      • 백준 (161)
      • 프로그래머스 (23)
    • 사는 이야기 (0)

블로그 메뉴

  • Github
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • select
  • Bronze IV
  • Bronze V
  • react
  • SQL
  • Scanner
  • java algorithm
  • SQL고득점Kit
  • 혼공SQL
  • 알고리즘
  • 혼공MySQL
  • java
  • math
  • sql 문제풀이
  • 백준알고리즘
  • HTML
  • MySQL
  • 혼자공부하는SQL
  • 프로그래머스
  • Algorithm
  • 자바
  • BRONZE
  • BOJ algorithm
  • 문제풀이
  • 백준문제풀이
  • 알고리즘풀이
  • 백준
  • BOJ
  • Bronze III
  • programmers

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
달마루

기획자에서 개발자로

[백준] 핸드폰 요금 - 1267 Java[자바]
algorithm/백준

[백준] 핸드폰 요금 - 1267 Java[자바]

2023. 2. 27. 09:54

[Bronze III] 핸드폰 요금 - 1267

문제 링크

 

1267번: 핸드폰 요금

동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다.

www.acmicpc.net

성능 요약

메모리: 18240 KB, 시간: 232 ms

분류

사칙연산(arithmetic), 수학(math)

문제 설명

동호는 새악대로 T 통신사의 새 핸드폰 옴머나를 샀다. 새악대로 T 통신사는 동호에게 다음 두 가지 요금제 중 하나를 선택하라고 했다.

  1. 영식 요금제
  2. 민식 요금제

영식 요금제는 30초마다 10원씩 청구된다. 이 말은 만약 29초 또는 그 보다 적은 시간 통화를 했으면 10원이 청구된다. 만약 30초부터 59초 사이로 통화를 했으면 20원이 청구된다.

민식 요금제는 60초마다 15원씩 청구된다. 이 말은 만약 59초 또는 그 보다 적은 시간 통화를 했으면 15원이 청구된다. 만약 60초부터 119초 사이로 통화를 했으면 30원이 청구된다.

동호가 저번 달에 새악대로 T 통신사를 이용할 때 통화 시간 목록이 주어지면 어느 요금제를 사용 하는 것이 저렴한지 출력하는 프로그램을 작성하시오.

입력

동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 싼 요금제의 이름을 출력한다. 그 후에 공백을 사이에 두고 요금이 몇 원 나오는지 출력한다. 만약 두 요금제의 요금이 모두 같으면 영식을 먼저 쓰고 민식을 그 다음에 쓴다.

영식은 Y로, 민식은 M으로 출력한다.

답 : 입력 값을 받아 리스트에 저장한 뒤
시간을 반복하여 yPrice, mPrice에 넣어주고
if문에서 비교해준다.
callTime에서 각 30,60으로 나눈 몫에 1을 더해
통화 시간에 대해 청구되는 단위 시간수를 뽑는다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] callList = new int[n];

        for (int i = 0; i < n; i++) {
            callList[i] = sc.nextInt();
        }

        int yPrice = 0;
        int mPrice = 0;

        for (int callTime : callList) {
            yPrice += (callTime / 30 + 1) * 10;
            mPrice += (callTime / 60 + 1) * 15;
        }

        if (yPrice < mPrice) {
            System.out.println("Y " + yPrice);
        } else if (yPrice > mPrice) {
            System.out.println("M " + mPrice);
        } else {
            System.out.println("Y M " + yPrice);
        }
        sc.close();
    }
}
저작자표시 비영리 변경금지 (새창열림)

'algorithm > 백준' 카테고리의 다른 글

[백준] 점수계산 - 2506 Java[자바]  (0) 2023.03.01
[백준] 점수계산 - 2506 JAVA[자바]  (0) 2023.02.28
[백준] 부호 - 1247 Java[자바]  (0) 2023.02.27
[백준] 나누기 - 1075 Java[자바]  (0) 2023.02.25
[백준] 보물 - 1026 Java[자바]  (0) 2023.02.24
    'algorithm/백준' 카테고리의 다른 글
    • [백준] 점수계산 - 2506 Java[자바]
    • [백준] 점수계산 - 2506 JAVA[자바]
    • [백준] 부호 - 1247 Java[자바]
    • [백준] 나누기 - 1075 Java[자바]
    달마루
    달마루
    항상 어제보다 좋은 코드를 지향합니다. https://github.com/LimDongHyun99

    티스토리툴바