[2020-11-20] 최대공약수와 최소공배수

2020. 11. 20. 15:50·코딩테스트

푼 시간 : 40분

언어 : 자바

 


 

 

programmers.co.kr/learn/courses/30/lessons/12940

 

코딩테스트 연습 - 최대공약수와 최소공배수

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의

programmers.co.kr

 

도저히 어떻게 하는지 몰라서 고민하다가 인터넷에 유클리드 호제법을 검색해 봐서 풀었다.

최소 공배수와 최대 공약수를 구하는 방법이 너무 많기때문에 if문을 도배 할 수 없고,

유클리드 호제법을 쓸 수밖에 없었다. 처음 보자마자 재귀함수를 써야 한다고 느꼈으나,

도저히 어떤방식으로 써야할지 감이 안잡혔었다.

 

천천히 고민하면서 재귀함수를 쓰다 보니 잘 된 것 같다.

재귀함수의 구조에 대해서 완벽히 이해하지는 못했지만 재귀함수를 썼다는것에

의의를 두고 푼 문제인 것 같다!

 

class Solution {
    public int[] solution(int n, int m) {
        int[] answer = new int[2];
        
        answer[0]=(m>n||n>m)?gcd(m, n):gcd(n, m);
        // m이크면 a가m, n이크면 b가n
        answer[1]=(m*n)/answer[0];
        // 최대공배수는 m*n / 최대공약수
        
        return answer;
    }
    
    public int gcd(int a, int b){
        if(a%b==0)
        // 최대공약수는 나머지가 0인수
            return b;
        else
        // 나머지가 0이 아니면 재귀호출한다.
            return gcd(b, a%b);
    }
}

'코딩테스트' 카테고리의 다른 글

[2020-12-01] 하샤드 수  (0) 2020.12.01
[2020-11-26] 콜라츠 추측  (0) 2020.11.26
[2020-11-19] 짝수와 홀수  (0) 2020.11.19
[2020-11-19] 제일 작은 수 제거하기  (0) 2020.11.19
[2020-11-18] 정수 제곱근 판별도움말  (0) 2020.11.18
'코딩테스트' 카테고리의 다른 글
  • [2020-12-01] 하샤드 수
  • [2020-11-26] 콜라츠 추측
  • [2020-11-19] 짝수와 홀수
  • [2020-11-19] 제일 작은 수 제거하기
jun96
jun96
프로그래밍 공부
  • jun96
    jun의 공부노트
    jun96
  • 전체
    오늘
    어제
    • 분류 전체보기 (73)
      • Spring (6)
        • 개념 (3)
        • 에러 (1)
      • Java (1)
      • Book (27)
        • 모던 자바 인 액션 (12)
        • 디자인 패턴의 아름다움 (8)
        • HTTP 완벽 가이드 (6)
      • Algorithm (1)
      • 코딩테스트 (35)
      • 일상 (2)
  • 블로그 메뉴

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

    • 이력서
  • 공지사항

  • 인기 글

  • 태그

    아직 미완성
    자바
    Java
    wikidocs
    프로그래머스
    최프
    디자인패턴의아름다움
    Algorithm
    datetime
    모던자바인액션
    junit5
    백준
    도커컨테이너빌드업
    aws배포
    알고리즘
    aws에 배포하기
    DeepDive
    전자정부프레임워크
    python설치
    스프링
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
jun96
[2020-11-20] 최대공약수와 최소공배수
상단으로

티스토리툴바