[프로그래머스 | Lv.1] 최대공약수와 최소공배수

2024. 3. 15. 14:55·Data structure & Algorithm/프로그래머스

 

문제 설명

 

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수,

solution을 완성해 보세요.

배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다.

예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로

solution(3, 12)는 [3, 12]를 반환해야 합니다.

 

 

제한 사항

 

두 수는 1이상 1000000이하의 자연수입니다.

 

 

입출력 예

 

n m return
3 12 [3, 12]
2 5 [1, 10]

 

입출력 예 설명

 

입출력 예 #1
위의 설명과 같습니다.

 

입출력 예 #2
자연수 2와 5의 최대공약수는 1, 최소공배수는 10이므로 [1, 10]을 리턴해야 합니다.

 

 

 

나의 풀이

func solution(_ n:Int, _ m:Int) -> [Int] {
    var minNum = n < m ? n : m
    var maxNum = n > m ? n : m
    
    return [getGreatestCommonDivisor(minNum, maxNum), getLeastCommonMultiple(minNum, maxNum)]
}

func getGreatestCommonDivisor(_ minNum: Int, _ maxNum: Int) -> Int {
    var greatestCommonDivisor = 1
    
    for i in stride(from: minNum, to: 1, by: -1) {
        if maxNum % i == 0 && minNum % i == 0 {
            greatestCommonDivisor = i
            break
        }
    }
    
    return greatestCommonDivisor
}

func getLeastCommonMultiple(_ minNum: Int, _ maxNum: Int) -> Int {
    var leastCommonMultiple = maxNum
    
    while leastCommonMultiple % minNum != 0 || leastCommonMultiple % maxNum != 0 {
        leastCommonMultiple += maxNum
    }
    
    return leastCommonMultiple
}

 

 

 

'Data structure & Algorithm > 프로그래머스' 카테고리의 다른 글

[프로그래머스 | Lv.1] 예산  (0) 2024.03.16
[프로그래머스 | Lv.1] 3진법 뒤집기  (0) 2024.03.16
[프로그래머스 | Lv.1] 직사각형 별찍기  (2) 2024.03.15
[프로그래머스 | Lv.1] 행렬의 덧셈  (0) 2024.03.15
[프로그래머스 | Lv.1] 문자열 다루기 기본  (0) 2024.03.14
'Data structure & Algorithm/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 | Lv.1] 예산
  • [프로그래머스 | Lv.1] 3진법 뒤집기
  • [프로그래머스 | Lv.1] 직사각형 별찍기
  • [프로그래머스 | Lv.1] 행렬의 덧셈
ohhoooo
ohhoooo
  • ohhoooo
    ohhoooo
    ohhoooo
  • 전체
    오늘
    어제
    • 전체 글 (84)
      • iOS (1)
      • Swift (1)
      • Data structure & Algorithm (67)
        • 프로그래머스 (67)
      • 기타 (15)
        • TIL (2)
        • Android (13)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
ohhoooo
[프로그래머스 | Lv.1] 최대공약수와 최소공배수
상단으로

티스토리툴바