Where who wants to meet someone
백준 Swift [13241] 최소공배수 본문
728x90
난이도
실버 V
문제
https://www.acmicpc.net/problem/13241
내 답안
let input = readLine()!.split(separator: " ").map { Int($0)! }
var minimumNumber = input.max()!
while true {
if minimumNumber % input[0] == 0 && minimumNumber % input[1] == 0 {
print(minimumNumber)
break
} else {
minimumNumber += input.max()!
}
}
- 둘 중 큰 수의 배수에 최소 공배수가 포함되기 때문에 모든 수를 체크하지 않는 방안을 고려했다
- while 무한루프를 돌면서 minimumNumber가 둘의 공배수일 경우 출력하고 탈출하도록 하여 첫 번째 값만 얻을 수 있게 하였고, 아닐 경우에는 큰 값만큼 늘려서 다시 루프를 돌도록 하였다.
- 아래 이미지 중 시간이 8 ms가 나온 것은 답안의 코드처럼 max()를 사용했을 때, 52 ms가 나온 것은 min()을 사용한 것이다
'백준 알고리즘 문제 기록 > 약수, 배수와 소수 2' 카테고리의 다른 글
백준 Swift [1929] 소수 구하기 (0) | 2023.08.18 |
---|---|
백준 Swift [4134] 다음 소수 (0) | 2023.08.18 |
백준 Swift [2485] 가로수 (0) | 2023.08.17 |
백준 Swift [1735] 분수 합 (0) | 2023.08.13 |
백준 Swift [1934] 최소공배수 (0) | 2023.08.11 |