문제
내 정답 코드
func solution(_ n:Int, _ m:Int) -> [Int] {
return [calDivisor(n, m), calMultiple(n, m)]
}
// 최소공배수 구하기 함수
// 1부터 작은수까지 반복문 돌리고, 각 수의 배수를 배열에 담기
// 배열에 같은 수가 있는 즉시 반환
func calMultiple(_ a: Int, _ b: Int) -> Int {
var aNums:[Int] = []
var bNums:[Int] = []
let maxNum = a > b ? a : b
for i in 1...maxNum {
aNums.append(a * i)
bNums.append(b * i)
for num in aNums {
if bNums.contains(num) {
return num
}
}
}
return 0
}
// 최대 공약수 구하기 함수
// 1부터 n, m중에 더 큰 수로 반복문 돌리고, 둘 다 나눠떨어지는 수 갱신
// 마지막 수 반환
func calDivisor(_ a: Int, _ b: Int) -> Int {
var divisor = 1
let maxNum = a > b ? a : b
for i in 2...maxNum {
if a % i == 0 && b % i == 0 {
divisor = i
}
}
return divisor
}
#
1. 최소공배수와 최대공약수를 구하는 함수를 만들어 해결하였다.
2. 각 함수의 풀이는 주석처리로 대체
3. 최소공배수와 최대공약수를 구하는 함수를 효율적으로 다시 짜봐야겠다.
배운 기술
'프로그래머스 (Swift) > lv 1' 카테고리의 다른 글
제일 작은 수 제거하기 (0) | 2024.10.16 |
---|---|
[lv1] 문자열 내 마음대로 정렬하기 (1) | 2024.10.13 |
[lv1] 직사각형 별찍기 (0) | 2024.10.08 |
[lv1] 하샤드 수 (0) | 2024.10.02 |
[lv1] 대충 만든 자판 (0) | 2024.09.11 |