- 백준 2588번 풀이 및 응용2022년 08월 18일
- Lv. 34 라이츄
- 작성자
- 2022.08.18.:54
문제
https://www.acmicpc.net/problem/2588
세 자리수의 곱셈에 대한 문제로, 순서대로 출력값이
- 일의 자리
- 십의 자리
- 백의 자리
- 전체 결과값
이 나오게 된다. 즉 123*456을 입력하면(물론 숫자 두 개로 입력받는다)
- 123 * 4
- 123 * 5
- 123 * 6
- 123 * 456
이렇게 네 가지로 출력하는 구조.
풀이
a=int(input()) b=input() print(a*int(b[-1])) print(a*int(b[-2])) print(a*int(b[0])) print(a*int(b))
어? 에디터 블록 켰더니 코드블록이 되네…? 무튼.
세자리수로 고정되어 있기 때문에 음수로 인덱싱해서 출력했다. input으로 입력받는 건 문자열이기때문에 int로 안 바꿔주면 결과값을 보자마자 여러분은 마른세수를 하게 된다. 문자열이 그냥 쭉 반복돼서 나오거든…
응용
-For문
a=int(input()) b=input() for i in range(1,len(b)+1): print(a*int(b[len(b)-i])) print(a*int(b))
반복문은 기본적으로 음수 인덱싱을 이용하지 않고, 별찍기때처럼 범위나 값에 변화를 줘서 진행할 예정이다. For문의 범위는 len(b)에서 뺄 값이기 때문에 1부터 숫자 자릿수+1로 잡았다. python의 range는 range(3)이면 길이는 3이지만 값이 0, 1, 2로 시작하기 때문.
-While문
a=int(input()) b=input() i=len(b) while i >= 1: print(a*int(b[i-1])) i=i-1 print(a*int(b))
a=int(input()) b=input() i=len(b) while i >= 1: i=i-1 print(a*int(b[i])) print(a*int(b))
둘 다 While이다.
for문과 while문은 같은 반복문이지만 맥락이 다르다. for문은 범위 안에서 반복하는 반복문이고, while은 특정 조건을 만족하기 전까지 반복하는 반복문. 그래서 돌아가는 용도에 따라 최적화된 반복문이 다르다.
'BOJ > [BOJ] Python' 카테고리의 다른 글
백준 8393번 풀이 (0) 2022.08.18 백준 10950번 풀이 (0) 2022.08.18 백준 14681번 풀이 (0) 2022.08.18 백준 2753번 풀이 (0) 2022.08.18 백준 2884번 풀이 (0) 2022.08.18 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)