본문 바로가기
알고리즘/CodeUp PS

[CodeUp][Python] 1380번 : 두 주사위의 합

by 빛밤하늘 2021. 11. 30.
반응형

밑의 링크는 CodeUp에서의 문제 링크입니다.

문제는 링크를 통해서 직접 봐주시길 바랍니다.

 

두 주사위의 합

주사위는 각 면에 1~6까지 적혀 있는 정육면체이다. 이런 주사위 2개를 굴려 합이 k가 나오는 경우를 조사하려고 한다. 예를 들어, 주사위 두개를 굴려 5가 나오는 경우는 1 4, 2 3, 3 2, 4 1 이다. 그리

codeup.kr

 

 

생각해 볼 점

1. 첫 번째 주사위 숫자가 작은 수에서 큰 순서로 출력

첫 번째 주사위 숫자가 작은 수에서 큰 순서로 출력해야 하므로

반복문을 사용할 때 range(1, 7)를 사용했습니다.

문제에서 제공한 예제처럼 두 주사위를 굴려 나오는 합 k가 5일 때

2 3
3 2
1 4
4 1

이런 식으로 출력한다면 두 주사위 숫자의 합이 5인 경우들을 모두 찾은 것은 맞지만,

첫 번째 주사위 숫자가 작은 수에서 큰 순서대로 출력한 것이 아니므로 틀렸다는 결과가 나옵니다.

 

 

예제 설명

1. 첫 번째 예제

- 입력

5

 

- 출력

1 4
2 3
3 2
4 1

- 설명

입력한 두 주사위를 굴려 나오는 합 k는 5입니다.

첫 번째 주사위와 두 번째 주사위의 숫자의 합이 5가 되는 경우를 

첫 번째 주사위의 숫자가 작은 순서대로, (첫 번째 주사위, 두 번째 주사위) 형식으로 나타내면

두 주사위 숫자의 합이 5인 경우는 (1, 4), (2, 3), (3, 2), (4, 1)입니다.

 

 

생각한 풀이 과정

첫 번째 주사위의 눈이 작은 수에서 큰 순서로 출력해야 하므로,

첫 번째 주사위의 숫자를 1부터 6까지 반복해보면서

각 첫 번째 주사위의 숫자에서 두 번째 주사위의 숫자를 1부터 6까지 반복해보고

첫 번째 주사위의 숫자와 두 번째 주사위의 숫자가 두 주사위를 굴려 나오는 합 k와 일치하는지 판단하면 됩니다.

 

두 주사위를 굴려 나오는 합 k를 입력하고, int형으로 변환합니다.

k = int(stdin.readline())

 

 

- 외부 반복문 시작

첫 번째 주사위의 숫자를 1부터 6까지 반복합니다.

for dice1 in range(1, 7):

- 내부 반복문 시작

두 번째 주사위의 숫자를 1부터 6까지 반복합니다.

for dice2 in range(1, 7):

 

첫 번째 주사위 숫자와 두 번째 주사위 숫자의 합이 두 주사위를 굴려 나오는 합 k와 같다면

if dice1 + dice2 == k:

 

첫 번째 주사위, 두 번째 주사위의 현재 숫자를 공백으로 구분해 출력합니다.

print(dice1, dice2)

- 내부 반복문 끝

- 외부 반복문 끝

 

 

제출한 파이썬 코드

# readline을 사용하기 위해 import합니다.
from sys import stdin

# 두 주사위를 굴려 나오는 합 k를 입력합니다.
# int형으로 변환합니다.
k = int(stdin.readline())

# 첫 번째 주사위의 눈이 작은 수에서 큰 순서로 출력해야하므로
# 첫 번째 주사위의 숫자를 1부터 6까지 반복해봅니다.
for dice1 in range(1, 7):
    # 두 번째 주사위의 숫자를 1부터 6까지 반복해봅니다.
    for dice2 in range(1, 7):
        # 첫 번째 주사위 숫자와 두 번째 주사위 숫자의 합이 k와 같다면
        if dice1 + dice2 == k:
            # 첫 번째 주사위, 두 번째 주사위의 현재 숫자를 공백으로 구분해 출력합니다.
            print(dice1, dice2)

 

 

제출 결과

CodeUp 1380번 : 두 주사위의 합에서 코드 제출 결과
CodeUp 1380번 : 두 주사위의 합에서 코드 제출 결과

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

※ 공감 버튼과 구독 버튼도 잊지 말고 꾹 눌러주시면 감사하겠습니다~👍👍

반응형

댓글