관리 메뉴

솜씨좋은장씨

[BaekJoon] 5086번 : 배수와 약수 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 5086번 : 배수와 약수 (Python)

솜씨좋은장씨 2021. 9. 20. 16:38
728x90
반응형

드디어 2주간의 자가격리가 해제된 오늘!!!!

코딩 1일 1문제! 오늘의 문제는 백준의 배수와 약수 입니다.

쉬운 문제 빨리 풀고 맛있는 것을 먹으러 가야겠습니다.🤩

 

5086번: 배수와 약수

각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다.

www.acmicpc.net

👨🏻‍💻 문제 풀이

문자열을 계속 입력 받는데 이때 입력 받은 문자열이 "0 0" 일 경우 반복을 중단하도록 합니다.

while True:
    input_str = input()
        
    if input_str == "0 0":
        break

그렇지 않은 경우에는 입력 받은 문자열을 split을 활용하여 공백으로 쪼갠 후에 

num1, num2 = map(int, input_str.split())

map(int) 를 활용해서 두개의 정수로 만들어 줍니다.

if num1 > num2 and num1 % num2 == 0:
    answer = "multiple"

그렇게 만든 두 숫자중에서 앞의 숫자가 크면서 앞의 숫자를 뒤의 숫자로 나누었을 때 나머지가 0인 경우

배수를 나타내는 multiple을

elif num1 < num2 and num2 % num1 == 0:
    answer = "factor"

뒤의 숫자가 더 크면서 뒤의 숫자를 앞의 숫자로 나누었을때 나머지가 0인 경우

약수를 나타내는 factor를 

answer = "neither"

두 가지 케이스가 모두 아닌경우에는 neither를 return 하도록 합니다.

 

전체 코드는 다음과 같습니다.

👨🏻‍💻 코드 ( Solution )

def multiple_or_factor(num1, num2):
    answer = "neither"
    if num1 > num2 and num1 % num2 == 0:
        answer = "multiple"
    elif num1 < num2 and num2 % num1 == 0:
        answer = "factor"
        
    return answer

if __name__ == "__main__":
    while True:
        input_str = input()
        
        if input_str == "0 0":
            break
        
        num1, num2 = map(int, input_str.split())
        
        print(multiple_or_factor(num1, num2))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments