1부터 n까지, 1부터 m까지 숫자가 적힌 서로 다른 주사위 2개를 던졌을 때 나올 수 있는 모든 경우를 출력해보자.
입력
주사위 2개의 면의 개수 n, m이 공백을 두고 입력된다.
단, n, m은 10이하의 자연수
2 3
출력
나올 수 있는 주사위의 숫자를 한 세트씩 줄을 바꿔 모두 출력한다.
첫 번째 수는 n, 두 번째 수는 m으로 고정해 출력하도록 한다.
1 1
1 2
1 3
2 1
2 2
2 3
<풀이>
더보기
내가 쓴 풀이
n, m = map(int, (input().split()))
for num_n in range(1, n+1):
for num_m in range(1, m+1):
print(num_n,num_m)
처음에 리스트로 풀어야 하는 줄 알고 이리저리 해봤다,,,
이중 for문을 돌려서 리스트에 넣고 *를 사용해서 출력해야 하는 줄 알았는데 코드를 짜다 보니 그냥 출력해도 되네...?
얻어 걸린 문제,,,,
역시 많이 풀어봐야 어떻게 풀어야 하는지 알게 된다는 걸 다시 느끼게 해준 문제다.
강의 풀이
n, m = map(int, (input().split()))
# 1번 풀이
for n in range(1, n+1):
for m in range(1, m+1):
print(n, m)
# 2번 풀이 - 1번 풀이(이중 for문)를 리스트 컴프리헨션으로 바꾸는 방법
array = [[(n,m)for m in range(1, m+1)]for n in range(1, n+1)]
for arr in array:
for a in arr:
print(*a)
1번 풀이로 푸는 게 더 쉽고 빠름. 2번 풀이는 그저 이중 for문을 리스트 컴프리헨션으로 바꾸는 방법을 설명하기 위한 풀이일 뿐
<풀이 비교>
for문 돌릴 때 변수이름 나름 신경 썼는데 그냥 그대로 써도 되는 거였잖아...? 이런,,
'Python > CodeUp' 카테고리의 다른 글
코드업 기초 100제 83번 - 3 6 9 게임의 왕이 되자 (0) | 2021.11.22 |
---|---|
코드업 기초 100제 82번 - 16진수 구구단 (0) | 2021.11.22 |
코드업 기초 100제 80번 - 언제까지 더해야 할까? (0) | 2021.11.22 |
코드업 기초 100제 79번 - 원하는 문자가 입력될 때까지 반복 출력하기 (0) | 2021.11.22 |
코드업 기초 100제 78번 - 짝수 합 구하기 (0) | 2021.11.22 |