반응형
백준: 11021번 A+B - 7 (Python3)
A+B - 7 성공
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 | 256 MB | 182269 | 90046 | 78862 | 49.685% |
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다.
예제 입력 1
5
1 1
2 3
3 4
9 8
5 2
예제 출력 1
Case #1: 2
Case #2: 5
Case #3: 7
Case #4: 17
Case #5: 7
힌트
python의 format string 기능을 이용하면 한결 간단하게 그리고 짧게 코드를 짤 수 있다. 그런데 시간 부분에서 비효율적으로 된다(?)
답안1 (import sys)
1
2
3
4
5
6
7
8
9
|
import sys
rep = int(input())
for i in range(1, rep+1, 1):
a, b = map(int, sys.stdin.readline().split())
print("Case #", end=""); print(i,end=""); print(": ", end="");
print(a+b)
|
cs |
코드가 딱 봐도 못생겼다. 프린트가 덕지 덕지 돼있고, import sys까지 돼있다. 더 간결하고 짧게 작성할 수 있는 데에도 불구하고 말이다.
메모리는 28776KB, 시간은 64ms.
답안2 (format string)
1
2
3
4
5
|
rep = int(input())
for i in range(rep):
a, b = map(int, input().split())
pr = f'Case #{i+1}: {a+b}'
print(pr)
|
cs |
format string으로 프린트 개수를 줄이고, 불필요한 library는 import하지 않았다.
메모리는 30840ms, 시간은 80ms.
발견
지금껏 같은 동작을 하는 코드일 때 코드 길이가 짧으면 메모리와 시간 부분에서 효율이 더 나을 것이라고 생각했는데, 아니었다. format string이 생각 보다 일반 프린트 여러 개보다 시간을 더 먹는 것 같다.
반응형
'공부 > 코딩테스트' 카테고리의 다른 글
백준: 11382번 꼬마 정민 (Python3) (0) | 2022.07.29 |
---|---|
백준: 11022번 A+B - 8 (Python3) (0) | 2022.07.29 |
백준: 10952번 A+B - 5 (Python3) (0) | 2022.07.24 |
백준: 10951번 A+B - 4 (Python3) (0) | 2022.07.24 |
백준: 10950번 A+B - 3 (Python3) (0) | 2022.07.24 |
댓글