카테고리 없음

백준 3226번 Python / Math

by seokii 2022. 3. 4.
728x90
반응형

문제풀이 GitHub

https://github.com/Seokii/baekjoon

 

GitHub - Seokii/baekjoon: Daily Commit for Baekjoon

Daily Commit for Baekjoon. Contribute to Seokii/baekjoon development by creating an account on GitHub.

github.com

 

문제 링크

https://www.acmicpc.net/problem/3226

 

3226번: 전화 요금

첫째 줄에 상근이가 건 전화의 수 N이 주어진다. (1 ≤ N ≤ 100) 다음 N개 줄에는 상근이가 건 전화에 대한 정보가 HH:MM DD와 같은 형식으로 주어진다. HH:MM은 전화를 건 시간이며, DD는 통화 시간이

www.acmicpc.net

 

문제 풀이

n = int(input())
answer = 0

for _ in range(n):
    time = input().split()
    tmp = []
    for i in range(int(time[1])):
        tmp.append(int(time[0].replace(":",""))+i)
    for i in tmp:
        cal = i % 100
        if cal // 60 == 1: i += 40
        if 700 <= i < 1900: answer += 10
        else: answer += 5

print(answer)

시간을 계산해서 통화 요금을 구하는 문제입니다.

통화 시작 시간과 통화 시간을 입력 받아 time 변수에 리스트 원소로 추가했습니다.

임시로 사용할 리스트인 tmp 변수를 선언하고 통화 시간만큼 반복해 ":"를 제거하고 원소로 추가했습니다.

ex) '06:45 30'을 입력하면 tmp리스트에는 645, 646, 647, 648, 649, ... ,674 추가됩니다.

하지만, 660 은 7시를 의미하기 때문에 (60분 -> 1시간) 이러한 처리를 해주는 for문을 작성했습니다.

cal 변수에 i를 100을 나눈 나머지를 선언하고, 60으로 나눈 몫이 1이라면 40을 더해 시간을 맞춰주었습니다. ex) "660 -> 700 -> 7시" , "685 -> 725 -> 7시25분"

이러한 처리를 진행한 후 문제의 조건에 따라 answer변수에 가격을 더해 답을 출력했습니다.

 

 

728x90
반응형

댓글