Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- data platform
- algorhtim
- 프로그래머스
- modbus
- frontend
- DP
- InfluxDB
- 좌표이동
- configfile
- dfs
- Two Pointer
- Stack
- typescript
- javascirpt
- 알고리즘
- 개발브로그
- set활용
- PCCP
- queue
- Algorithm
- React
- python
- summerwintercoding
- 42587
- 코딩테스트
- pymodbus
- javascript
- 1844
- 완전탐색
- 파이썬
Archives
- Today
- Total
DM Log
[연습문제] N개의 최소공배수 - Python / JavaScript 본문
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/12953
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[문제 간단 요약]
1. 주어진 배열의 값의 최소공배수를 구하는 문제
[문제 해결 방안]
1. 유클리드 호제법을 활용하여 최소공배수 계산
[유클리드 호제법]
1. 큰 수 a / 작은 수 b / a를 b로 나눈 나머지 r이 있을 때, a와 b / b와 r의 최대 공약수는 같음
2. 나머지가 이 될 때까지 연속해서 사용하여 나누는 값을 최대 공약수

[최소 공약수]
1. 최소 공약수 = 큰 수 a * 작은 수 b / 최대 공약수
[문제 해결 코드 - python]
def GCD(a,b):
while True:
if a % b == 0:
return b
tmp = a % b
a = b
b = tmp
def solution(arr):
answer = 0
sort_arr = sorted(arr)
a = sort_arr.pop()
while sort_arr:
b = sort_arr.pop()
tmp = a * b
a = tmp / GCD(a,b)
return a
[문제 해결 코드 - javascript]
function GCD(a,b) {
while (true) {
if (a % b === 0) {
return b
}
let tmp = a % b
a = b
b = tmp
}
}
function solution(arr) {
let a,b
let arr_sort = arr.sort((a,b) => a-b)
a = arr_sort.pop()
while (arr_sort.length !== 0) {
b = arr_sort.pop()
let tmp = GCD(a,b)
a = a * b / GCD(a,b)
}
return a;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[2017 팁스타운] 예상 대진 - Python / JavaScript (0) | 2025.03.04 |
---|---|
[ Summer/Winter Coding(~2018)] 영어 끝말잇기 - Python / JavaScript (0) | 2025.03.04 |
[연습문제] 멀리 뛰기 - Python / JavaScript (1) | 2025.02.24 |
[Summer/Winter Coding(~2018)] 점프와 순간 이동 - Python / JavaScript (1) | 2025.02.23 |
[탐욕법(Greedy)] 구명보트 - Python / JavaScript (1) | 2025.02.22 |