밑의 링크는 CodeUp에서의 문제 링크입니다.
문제는 링크를 통해서 직접 봐주시길 바랍니다.
생각해 볼 점
1. 출력 형식
문제를 보면 표현 오류가 날 가능성이 높으므로 문제 설명에서 보여준
출력 양식대로 출력하는 것에 주의를 주고 있습니다.
특히 문제에서 주의를 주는 점들 중에서 2번과 3번에 주의해서 구현해야 합니다.
예제 설명
1. 첫 번째 예제
- 입력
입력은 없습니다.
- 출력
티스토리에서 작성하려고 하니 실제 문제에서처럼 출력 형식에 맞게 이쁘게 작성되지 않네요.
출력은 포스팅의 맨 위에 있는 문제 링크를 클릭해서 직접 확인해보시길 바랍니다.
2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5
2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10
2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15
2 x 4 = 8 3 x 4 = 12 4 x 4 = 16 5 x 4 = 20
2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25
2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30
2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35
2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40
2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45
- 설명
입력한 두 주사위를 굴려 나오는 합 k는 5입니다.
첫 번째 주사위와 두 번째 주사위의 숫자의 합이 5가 되는 경우를
첫 번째 주사위의 숫자가 작은 순서대로, (첫 번째 주사위, 두 번째 주사위) 형식으로 나타내면
두 주사위 숫자의 합이 5인 경우는 (1, 4), (2, 3), (3, 2), (4, 1)입니다.
생각한 풀이 과정
파란 네모를 보면 한 줄을 출력할 때, 2에서 5단으로 단의 숫자가 먼저 증가하면서 출력합니다.
그리고 한 줄 출력이 끝나면 1에서 9까지 곱해지는 숫자가 증가합니다.
이것을 중첩 반복문으로 구현하려면 1에서 9까지 곱해지는 숫자를 외부 반복문으로,
2에서 5까지 단의 숫자를 내부 반복문으로 구현하면 됩니다.
'2 x 1 = 2'와 '3 x 1 = 3'의 사이처럼 각 단을 구별하는 공백(빨간 네모)은
스페이스 바로 한 칸을 띄우는 것이 아닌 탭(\t)으로 띄어야 합니다.
- 외부 반복문 시작
하나의 단에서 단 숫자와 곱하는 숫자인 1 ~ 9를 반복합니다.
for num in range(1, 10):
- 내부 반복문 시작
현재 곱하는 숫자 num에서 2 ~5단을 출력 형식에 맞게 한 줄로 출력하는 반복문입니다.
2단부터 5단까지 출력해야 하므로 단을 뜻하는 숫자인 2부터 5까지 반복합니다.
for dan in range(2, 6):
현재 곱하는 숫자에서 현재 단을 출력 형식에 맞게 출력합니다.
곱하는 숫자와 단의 곱셈 결과는 %d를 사용하여 두 칸으로 봤을 때 우측 정렬하여 출력합니다.
단과 단 사이에는 스페이스 바를 사용한 공백이 아닌 탭(\t)으로 분리해야 하므로 마지막에 \t을 사용합니다.
다음 줄로 내리지 않습니다.
print(f"{dan} x {num} = {'%2d' % (dan * num)}\t", end='')
- 내부 반복문 끝
현재 곱하는 숫자에서 2단부터 5단까지 한 줄 출력이 끝나면 다음 줄로 내려줍니다.
print()
- 외부 반복문 끝
제출한 파이썬 코드
# 하나의 단에서 단 숫자와 곱하는 숫자인 1 ~ 9를 반복합니다.
for num in range(1, 10):
# 현재 곱하는 숫자 num에서 2 ~ 5단을 출력 형식에 맞게 한 출로 출력하는 반복문입니다.
# 2단부터 5단까지 출력해야 하므로 단을 뜻하는 숫자인 2부터 5까지 반복합니다.
for dan in range(2, 6):
# 현재 곱하는 숫자에서 현재 단을 출력 형식에 맞게 출력합니다.
# 다음 줄로 내리지 않습니다.
print(f"{dan} x {num} = {'%2d' % (dan * num)}\t", end='')
# 현재 숫자에서 2 ~ 5단의 한 줄 출력이 끝나면 다음 줄로 내립니다.
print()
제출 결과
기타
문제에서 제공한 관련 동영상을 클릭해도 동영상을 확인할 수 없는데,
밑의 묻고 답하기에서 찾아보니까 밑에 링크 동영상인가 봅니다.
문제를 푸는 것이랑은 전혀 상관없고
코딩을 하는 사람에게는 특히 이 문제를 푸는 사람에게는 약간 어이없이 웃긴 장면입니다.
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
※ 공감 버튼❤과 구독 버튼도 잊지 말고 꾹 눌러주시면 감사하겠습니다~👍👍
댓글