https://www.acmicpc.net/problem/5086
두 수를 입력받아 첫 번째 숫자가 두 번째 숫자에 대하여 약수인지, 배수인지, 의미 없는 수인지를 확인하는 문제이다.
(각각 factor, multiple, neither)
(※ 약수 또는 배수라는 가정하에)
a < b == factor
a > b == multiple
# input
무한 반복처리하여 두 개의 숫자를 입력받고, 입력 받은 데이터는 리스트 형태로 만든다.
만약 입력 받은 데이터가 '0 0'이라면 입력 종료를 의미하므로 반복에서 빠져나오고, 그렇지 않다면 수를 저장하는 리스트에 데이터를 append한다. (line 8-11)
# process
for문을 통해 수를 저장한 리스트에서 비교할 두 수를 순서대로 꺼내 비교를 진행한다.
만약 a>b인 경우 b가 a와 같거나 클 때까지 수를 점차 증가시켜 b가 a와 숫자가 동일하다면 multiple, b가 a보다 크다면 neither를 결과 리스트에 넣는다. b가 a보다 작다면 증감식을 통해 b를 증가시킨다. (line 14-27)
b<a인 경우 반대로 연산을 수행하며, 배수인 a가 b와 같다면 factor를, a가 b보다 크다면 neither를 결과 리스트에 넣는다. (line 28-39)
# output
결과가 한줄씩 나타나야하므로 for문을 통해 결과 리스트에서 하나씩 불러와 출력한다.
배수인 a(또는 b)와 b(또는 a)를 비교하는 연산에서 배수인 값이 아닌 원래 값을 가지고 비교하여 무한 반복에 들어가는 실수를 하였다.
vscode의 디버그 기능을 이용하여 수정하고 해결하였다.
해당 코드는 에디터가 코드 연습을 위해 직접 작성하였습니다.
혹시 오류가 있거나 더 좋은 코드 방향성을 아시는 분은 댓글로 남겨주시면 감사하겠습니다..!
[Baekjoon] 백준 10809번 문제 풀이 (Python) (0) | 2021.08.06 |
---|---|
[Baekjoon] 백준 10872번 문제 풀이 (Python) (0) | 2021.08.05 |
[Baekjoon] 백준 1157번 문제 풀이 (Python) (0) | 2021.08.03 |
[Baekjoon] 백준 7568번 문제 풀이 (Python) (0) | 2021.08.02 |
[Baekjoon] 백준 1065번 문제 풀이 (Python) (0) | 2021.07.24 |