https://www.acmicpc.net/problem/2588
문제 풀이
- 첫 번째 input값에 두 번째 input값 요소를 하나씩 꺼내어 곱해주고 출력한다.
- 마지막에 첫 번째와 두 번째 input값을 곱해 출력한다.
코드 풀이
1번째 시도 - 실패
import sys
a,b = map(int, sys.stdin.readline().strip().split('\n') )
for n in b[::-1]: # 일의 자리부터 곱해야 하므로 b를 뒤집어서 차례대로 곱한다.
print(int(a) * int(n)) # 472 * 5 / 472 * 8 /472 * 3
print(int(a) * int(b)) # 472*385
- 실패 원인
- a,b를 받을때 정수형으로 바꾸고 for문을 돌릴려고 했다.
- 숫자형도 반복가능한 리터럴인지 알았다. => TypeError: 'int' object is not iterable
- 첫째 줄과 둘째 줄 input값을 split('\n')을 사용해 개행으로 나눌려고 했다.
- 애초에 한 줄의 input값이 개행으로 구분되어진게 아니라 첫 번째 input이 들어오고 두 번째 input값이 들어온 것이였다. 입력값 설명을 잘 읽어야겠다.
최종 코드 - 성공
import sys
a = sys.stdin.readline().strip()
b = sys.stdin.readline().strip()
for n in b[::-1]: # 일의 자리부터 곱해야 하므로 b를 뒤집어서 차례대로 곱한다.
print(int(a) * int(n)) # 472 * 5 / 472 * 8 /472 * 3
print(int(a) * int(b)) # 472*385
''' 출력값
2360
3776
1416
181720
'''
새롭게 안 점 - strip
- strip()을 쓰는 이유
: stdin.readline()으로 input값을 받으면 끝에 \n을 달고 오기때문에 strip()을 사용해 문장 앞뒤 공백을 제거해야한다.
import sys
# '강아지'를 입력 받으면
input = sys.stdin.readline()
print(input) # '강아지\n'로 출력된다.
input = sys.stdin.readline().strip() # 앞 뒤 공백을 제거
print(input) # '강아지'로 출력된다.
'algorithm > 백준' 카테고리의 다른 글
[PYTHON] 1130 두 수 비교하기 (0) | 2023.01.11 |
---|---|
[PYTHON] 10171 고양이 10172 강아지 25083 새싹 ''' 여러줄 한번에 출력하기 ''' (0) | 2023.01.06 |
[PYTHON] 10430번 나머지 (0) | 2023.01.06 |
[PYTHON] 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2023.01.05 |
[PYTHON] 18108번 1998년생인 내가 태국에서는 2541년생?! (0) | 2023.01.05 |
댓글