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

2024. 3. 15. 14:55·Data structure & Algorithm/프로그래머스
목차
  1. 문제 설명
  2. 제한 사항
  3. 입출력 예
  4. 나의 풀이

 

문제 설명

 

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

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
  1. 문제 설명
  2. 제한 사항
  3. 입출력 예
  4. 나의 풀이
'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] 최대공약수와 최소공배수
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.