Developer_Neo
[파이썬] 5554번 : 심부름 가는 길 본문
반응형
문제
승균이는 매일 학교, PC방, 학원에 다닌다. 반복되는 일상에 익숙해진 승균이는 이동시간을 단축해서 PC방에 더 오래 머물고 싶었다. 그래서 스톱워치를 들고 이동할 때마다 기록을 잰 후 집에 가서 분석해보기로 했다.
집에 도착한 승균이는 측정한 결과를 보는 데, 전부 초 단위로 기록되어있다! 맨날 놀기만 해서 총 이동 시간이 몇 분 몇 초인지 계산을 못 하는 승균이를 도와주자.
하루 동안 측정한 결과가 주어지면, 이날의 총 이동 시간이 몇 분 몇 초인지 출력하는 프로그램을 작성하시오.
입력
입력은 총 4줄이며, 한 줄에 하나씩 양의 정수가 적혀있다.
- 첫 번째 줄에 집에서 학교까지의 이동 시간을 나타내는 초가 주어진다.
- 두 번째 줄에 학교에서 PC방까지의 이동 시간을 나타내는 초가 주어진다.
- 세 번째 줄에 PC방에서 학원까지의 이동 시간을 나타내는 초가 주어진다.
- 마지막 줄에 학원에서 집까지의 이동 시간을 나타내는 초가 주어진다.
집에 늦게 가면 혼나기 때문에, 총 이동시간은 항상 1 분 0 초 이상 59 분 59 초 이하이다.
출력
총 이동시간 x 분 y 초를 출력한다. 첫 번째 줄에 x를, 두 번째 줄에 y를 출력한다.
예제 입력 1 복사
31
34
7
151
예제 출력 1 복사
3
43
예제 입력 2 복사
316
430
643
1253
예제 출력 2 복사
44
2
예제 입력 3 복사
5
10
15
30
예제 출력 3 복사
1
0
생각
입력이 총 4줄이니 input()함수보다는 readline()함수를 쓰자
입력이 초로 주어지니 입력에 해당하는 걸 다 더해야하니 sum()함수를 사용하자
출력을 할때에 분 초로 계산해야하니 몫으로 나타낼때 소수점까지 나타나니 math모듈의 floor를 사용하자
import sys,math
movetime=[]
for i in range(4):
a=sys.stdin.readline()
movetime.append(int(a))
print(math.floor(sum(movetime)/60),sum(movetime)%60,sep='\n')
다른풀이
a = 0
for i in range(1,5):
a += int(input())
print(a//60)
print(a%60)
몫에 해당하는 것을 나타낼때 //가 있다는 것을 까먹음
굳이 리스트에 저장을 할 필요가 없다는 것을 깨달음
위의 것으로 했을 때 시간이 44ms가 줄어드는 것을 볼 수 있다.
반응형
'프로그래밍 > 백준알고리즘' 카테고리의 다른 글
[파이썬] 1271번 : 엄청난 부자2 (0) | 2022.01.18 |
---|---|
[파이썬] 5522번 : 카드 게임 (0) | 2022.01.18 |
[파이썬] 3003번 : 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2022.01.18 |
[파이썬] 2845번 : 파티가 끝나고 난 뒤 (0) | 2022.01.18 |
[파이썬] 1550번 : 16진수 (0) | 2022.01.18 |
Comments