🧮 [프로그래머스] N개의 최소 공배수 (Java) ft.유클리드 호재법

2023. 9. 26. 19:20· 코딩테스트/🧮 프로그래머스
문제

https://school.programmers.co.kr/learn/courses/30/lessons/12953

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 이해 && 풀이

해당 문제는 이해력이 필요한 문제라기 보다 최소공배수를 다룰 줄 아는지가 중요한 문제이다.

 

프로그래머스에서는 최대 공약수와 최소 공배수를 다루는 문제가 한번 있었다.

https://school.programmers.co.kr/learn/courses/30/lessons/12940

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

하지만 차이점은 두개의 수만을 다루어 문제를 풀기 때문에 N개의 문제에서는 또 다른 풀이 법이 필요하다.

 

최대 공약수란?

공약수란 두 수, 혹은 그 이상의 여러 수의 공통인 약수라는 뜻으로 최대공약수는 그중 가장 큰 약수를 뜻한다.

최대공약수는 gcd(a,b)라는 수학 기호가 존재한다. 

 

최소 공배수란?

공배수란 두 수, 혹은 그 이상의 수들이 공통인 배수이다. 최소는 그중 가장 작은 수를 뜻한다.  

최소공배수는 lcm(a,b)라는 수학 기호가 존재한다.

※공식 : 최소 공배수 = 두 수의 곱 / 두 수의 최대 공약수

 

유클리드 호제법

static int gcd(int a, int b) {
	while(b != 0) {
    	int r = a % b;
        a = b;
        b = r;
    }
    return a;
}

이처럼 두 수가 있다면 처음에 그 중 한수로 나누고 나머지를 임시 변수(r)에 저장하고 나누어진 수(a)는 나눈 수 (b)가 되고 나눈 수(b)는 임시변수(r)이 된다. 그리고 b가 0이 아닐때까지 반복하고 0이 된다면 a를 return하게된다. 이때 a는 a, b의 최대공약수가 되는 것이다.

 

소스코드

'코딩테스트 > 🧮 프로그래머스' 카테고리의 다른 글

🧮 [프로그래머스] 귤 고르기 (Java) - getOrDefault, Comparator  (0) 2023.10.17
🧮 [프로그래머스] 멀리 뛰기 (Java) - DP 문제  (0) 2023.09.26
🧮 [프로그래머스] 이진 변환 반복하기 (JAVA)  (0) 2023.09.21
🧮 [프로그래머스] 폰켓몬 (JAVA)  (0) 2023.08.14
🧮 [프로그래머스] 푸드파이트 대회(JAVA)  (0) 2023.08.12
'코딩테스트/🧮 프로그래머스' 카테고리의 다른 글
  • 🧮 [프로그래머스] 귤 고르기 (Java) - getOrDefault, Comparator
  • 🧮 [프로그래머스] 멀리 뛰기 (Java) - DP 문제
  • 🧮 [프로그래머스] 이진 변환 반복하기 (JAVA)
  • 🧮 [프로그래머스] 폰켓몬 (JAVA)
늦은산책
늦은산책
늦은산책
중얼중얼블로그
늦은산책
전체
오늘
어제
  • 분류 전체보기
    • 오류 모음집
    • CS
      • 💾 자료구조
      • 👫🏼 정렬
      • 🖥 네트워크
      • 💻 운영체제
      • 💾 DB
      • 🌌 알고리즘
      • 📝 언어
    • 테스트
    • Git 초보에게 필요한 Git bash사용법
    • 프로젝트
      • 팀 프로젝트
      • 개인 프로젝트
      • 항해99 개인 프로젝트
      • 스위프 프로젝트(Lit Map)
    • Java
      • 객체 지향
    • Spring
      • 🌲 Spring
      • 👨‍💻 SpringSecurity
      • 🌵 JPA
    • MSA
      • MSA 강좌 - 이도원 강사님
    • Docker(도커)
    • 코딩테스트
      • 🧮 프로그래머스
      • 🎲 백준
    • 항해99
      • 🕛 1주차
      • 🕐 2주차
      • 🕑 3주차
      • 🕒 4주차
    • AWS
    • CI와CD

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 항해99
  • 개발자포트폴리오
  • 코딩테스트
  • 개발자취업
  • 개발자포토폴리오
  • 개발자이력서
  • 개발자취준
  • 취업리부트코스
  • 카우치코딩_팀프로젝트
  • couchcoding
  • 카우치코딩
  • 카우치코딩_포트폴리오_멘토링
  • 취리코

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
늦은산책
🧮 [프로그래머스] N개의 최소 공배수 (Java) ft.유클리드 호재법
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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