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

[CodeUp][Python] 1206번 : 배수

by 빛밤하늘 2021. 8. 28.
반응형

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

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

 

배수

두 자연수 a, b가 주어진다. b가 a의 배수이면 "a*x=b"를 출력하고, a가 b의 배수이면 "b*x=a"를 출력하고, 배수관계가 아니면 "none"을 출력하시오. 예)  5 10    ====> 5*2=10 14 2   ======> 2*7=14 3 7 =====> none

codeup.kr

 

 

 

주의해야 할 점

1. map, split을 사용하는 입력 방식

실수나 정수인 여러 값들이 입력값일 때,

split 메서드를 사용해 공백이나 어떤 문자를 기준으로 입력값을 여러 값들로 분리하고,

map 내장 함수로 각각의 값들을 int형이나 float형으로 정수, 실수 자료형으로 변환하는 기법은 매우 많이 쓰입니다.

코드 이해부터 하고 나면 다른 문제에서도 외운 듯이 사용해봅시다.

a, b = map(int, sys.stdin.readline().split())

 

2. 두 수 사이의 배수 관계 파악

어떤 숫자가 다른 숫자의 배수인지 아닌지를 어떻게 알 수 있는지는

나누어보고 나머지가 0인지 아닌지의 여부를 통해 알 수 있습니다.

예를 들어, 12와 6이 있다면 12를 6으로 나누었을 때 나머지는 0이므로 12는 6의 배수라는 것을 알 수 있습니다.

이 기법은 많이 쓰이므로 몰랐다면 꼭 기억해놓읍시다.

 

예제 설명

1. 첫 번째 예제

- 입력

4 12

 

- 출력

4*3=12

 

- 설명

입력한 두 자연수는 4, 12입니다.

12가 4의 배수입니다.

12를 4로 나누었을 때의 몫은 3이므로, 

출력 형식에 맞게 4*3=12로 출력합니다.

 

생각한 풀이 과정

두 자연수 a, b를 입력하면, a, b가 배수 관계인지 아닌지를 먼저 검사해봅니다.

b가 a의 배수이면 b를 a로 나누어 x를 구하고 "a*x=b" 형식으로 출력하고,

a가 b의 배수이면 a를 b로 나누어 x를 구하고 "b*x=a" 형식으로 출력하고,

a, b가 배수 관계가 아니면 문자열 'none'을 출력합니다.

 

제출한 파이썬 코드

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


# 두 자연수 a, b를 공백으로 구분해 입력합니다.
# 각각 int형으로 변환합니다.
a, b = map(int, stdin.readline().split())

# b가 a의 배수이면, 즉 b를 a로 나누었을 때 나머지가 0이라면
if b % a == 0:
    # b를 a로 나눈 몫인 출력 형식의 x를 구하고
    # 출력 형식 'a*x=b'에 맞게 배수 관계를 출력합니다.
    print(f'{a}*{b // a}={b}')
# a가 b의 배수이면, 즉 a를 b로 나누었을 때 나머지가 0이라면
elif a % b == 0:
    # a를 b로 나눈 몫인 출력 형식의 x를 구하고
    # 출력 형식 'b*x=a'에 맞게 배수 관계를 출력합니다.
    print(f'{b}*{a // b}={a}')
# 그 외의 경우에는, 즉, a와 b가 서로 배수가 아니라면
else:
    # 문자열 'none'을 출력합니다.
    print('none')

 

제출 결과

CodeUp 1206번 : 배수에서 코드 제출 결과
CodeUp 1206번 : 배수에서 코드 제출 결과

 

 

 

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

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

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

반응형

댓글