안녕하세요! 오늘은 N개의 최소공배수 문제를 풀어보았습니다!
참... 문제가 이상하다고 많이 느낀 문제였는데요!
풀고나서도 찝찝하네요!
우선 같이 풀어보시죠!
N개의 최소공배수
각자 다 소수로 나눠서 그 갯수로 문제를 풀었다가 연습문제만 맞고 테스트 코드에서 틀려버려서 풀이 방법을 바꾸었습니다.
두개씩 최소공배수를 구하고 그 수로 다음수와 또 최소공배수를 구하는 방식으로 문제를 풀었습니다!
그러기 위해서는 최대공약수를 구하고 두수를 곱한다음 최대공약수로 나누면 서로의 최소 공배수가 구해지는 방법을 이용하였습니다!
이렇게 두개씩 최대공약수를 구해 마지막 배열에 저장하고 반환하면 문제가 해결됩니다!
func solution(_ arr:[Int]) -> Int {
var resultArr = arr
var result = 1
var count = resultArr.count
for i in 1..<count {
let minNumber = resultArr[i-1] < resultArr[i] ? resultArr[i-1] : resultArr[i]
var gcd = 1
for j in 1...minNumber {
if (resultArr[i-1]%j == 0 && resultArr[i]%j == 0 ){
gcd = j
}
}
resultArr[i] = resultArr[i-1] * resultArr[i] / gcd
}
print(resultArr)
return resultArr[count-1]
}
오늘도 포스팅을 봐주셔서 감사하고
좋은 하루 되시길 바랍니다!
'Algorithm Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 코딩테스트 연습 2017 카카오코드 예선 카카오프렌즈 컬러링북 with C++ (0) | 2021.12.14 |
---|---|
[프로그래머스] 코딩테스트 연습 2019 KAKAO BLIND RECRUITMENT 오픈채팅방 with Swift (0) | 2021.12.13 |
[프로그래머스] 이상한 문자 만들기, 자연수 내림차순으로 배치하기, 정수 제곱근 판별 with Swift (0) | 2021.12.07 |
[프로그래머스] 서울에서 김서방 찾기, 소수 찾기, 시저 암호 (0) | 2021.12.07 |
[프로그래머스] 문자열 내 p와 y의 개수, 문자열 내림차순으로 배치하기, 문자열 다루기 기본 with Swift (0) | 2021.12.06 |