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
- html
- 개발자
- 프로그래밍
- 프로그래머스 레벨0
- 코테준비
- 알고리즘스터디
- 자바스크립트
- 코딩
- 정보처리기사
- mysql
- next.js 에러
- 프로그래머스
- CSS
- next.js
- 1일1코테
- js
- 프로그래머스 Lv.0
- 프로그래머스코테
- 프로그래머스 알고리즘
- Redux-Toolkit
- 코테스터디
- 코딩테스트
- 정처기기출
- 알고리즘공부
- 프로그래머스 코딩테스트
- 프로그래머스알고리즘
- 알고리즘문제
- 프로그래머스코딩테스트
- 코테공부
- 프로그래머스 코테
Archives
- Today
- Total
계발하는 개발자
[프로그래머스/Lv.0] 분수의덧셈 본문
⚙️ 문제 설명
⚠️ 제한 사항
🔃 입출력
📜 입출력 예 설명
🧠 나의 풀이
function solution(numer1, denom1, numer2, denom2) {
// 분자
let topNum = numer1*denom2 + numer2*denom1;
// 분모
let botNum = denom1*denom2;
// 최대공약수
let maxiNum = 1;
for (let i = 1; i<=topNum; i++) {
if (topNum%i === 0 && botNum%i === 0) {
maxiNum = i;
}
}
return [topNum/maxiNum, botNum/maxiNum];
}
solution(1,2,3,4);
solution(9,2,1,3);
🧐 풀이 설명
먼저 입출력 예1의 답이 [5,4] 가 되는 이유를 풀이 해봤을 때,
문제에서 첫번째 분수의 분자, 분모가 각각 numer1, denom1 이고, 두번째 분수의 분자, 분모가 각각 numer2, denom2 라고 했으니 이를 예1의 분수로 치환했을 때 1/2 + 3/4 가 된다.
이때 분수의 덧셈을 하기 위해서는 우선 분모를 똑같이 만들어줘야 한다.
그러기 위해 분자*대각선 방향의 상대방 분모 곱해준 값 / 분모끼리 곱해준 값을 구하면 10/8이 나온다.
그리고 이를 기약분수로 나타내라고 했는데, 기약분수는 분자, 분모를 나누었을 때의 값이 1뿐이어서 더 이상 나누어 떨어지지 않는 분수를 말한다.
이때는 10/8을 2의 약수로 나눌 수 있으니 5/4가 된다.
그리고 예1의 답이 [5,4] 라고 했으니 기약분수의 분자, 분모 값을 배열화한 값을 반환해주면 된다.
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/120808
LIST
'🖥 Computer Science > Algorithm' 카테고리의 다른 글
[프로그래머스/Lv.0] 양꼬치 (2) | 2023.11.19 |
---|---|
[프로그래머스/Lv.0] 배열의 평균값 (0) | 2023.11.18 |
[프로그래머스/Lv.0] 짝수의 합 (0) | 2023.11.18 |
[프로그래머스/Lv.0] 나이 출력 (0) | 2023.11.18 |
[프로그래머스/Lv.0] 배열 두 배 만들기 (1) | 2023.11.18 |
dev_genie
@dev_genie
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!