본문 바로가기
BOJ/[BOJ] Python

백준 5086번 풀이

by Lv. 35 라이츄 2023. 6. 22.

문제

https://www.acmicpc.net/problem/5086

 

5086번: 배수와 약수

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

www.acmicpc.net

앞의 수가 뒤의 수와 어떤 관계인지 출력하면 된다. (약수 or 배수 or 무관)

 

풀이

자 우리 일단 들어가기전에 약수랑 배수가 뭔지 알아보고 가자. 이거 초딩때 한거라 다 까먹은 분들 계십니다, 예...

 

약수는 어떤 수를 딱 나눠 떨어지게 나눌 수 있는 수이고, 배수는 어떤 수로 딱 나눠 떨어지게 나눌 수 있는 수이다. 생각해봅시다. 5는 10의 약수이고 반대로 10은 5의배수이다. 1000은 8의 배수이고(125로 떨어짐) 8은 1000의 약수이다. 가릿?

 

import sys

while True:
    m, n = map(int, sys.stdin.readline().split())

그리고 입력에 몇줄 받는다 이런거 없고 0 0 들어올때까지 받잖아요? 이게 뭔 소리냐면 와일트루(while True) 쓰라는 얘깁니다. 걍 무한뺑뺑이 돈다 이거지. 그러면 뭐가 필요해요? 그죠 나갈 조건 설정해야죠.

 

import sys

while True:
    m, n = map(int, sys.stdin.readline().split())
    if m == 0 and n == 0:
        break
    elif m <= n and n % m == 0:
        print('factor')
    elif m >= n and m % n == 0:
        print('multiple')
    else: 
        print('neither')

자 급하니까 알아서 따라오십쇼. if문에 있는건 반복문 나가는 조건, 즉 0 0에 대한 로직이다. 0 0이 들어오면 나가라는 얘기다. 그리고 약수는 왼쪽이 오른쪽보다 작거나 같고 오른쪽으로 왼쪽을 나누었을 때 나누어 떨어지면(나머지가 0이면) 약수다. 배수는 왼쪽이 오른쪽보다 크거나 같고(근데 배수가 자기자신 포함이던가...) 왼쪽으로 오른쪽을 나누었을 때 나머지가 0이면 배수. 둘이 방향 반대입니다. 그리고 둘 다 아니면 무관.

 

'BOJ > [BOJ] Python' 카테고리의 다른 글

백준 9506번 풀이  (0) 2023.06.24
백준 2501번 풀이  (0) 2023.06.23
백준 2903번 풀이  (0) 2023.06.21
백준 2720번 풀이  (0) 2023.06.19
백준 11005번 풀이  (0) 2023.06.16

최근댓글

최근글

skin by © 2024 ttutta