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 |
Tags
- greedy
- 코딩테스트
- dynamic programming
- Counting
- two pointers
- Method
- bit manipulation
- SQL
- Binary Search
- string
- Matrix
- geometry
- 자바
- Class
- 파이썬
- implement
- java
- simulation
- sorting
- Number Theory
- Binary Tree
- Math
- 구현
- 코테
- hash table
- database
- array
- Data Structure
- Stack
- Tree
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.0] 분수의 덧셈 본문
1. Input
1) 첫 번째 분수의 분자 denum1, 분모 num1
2) 두 번째 분수의 분자 denum2, 분모 num2
2. Output
1) 두 분수의 합을 기약분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열
3. Constraint
1) 0 < denum1, num1, denum2, num2 < 1000
2) 분자, 분모는 모두 정수
4. Example
Input: denum1=1, num1=2, denum2=3, num2=4 -> Output: {5, 4}
설명:
- 1/2 + 3/4 = 2/4 + 3/4 = 5/4
5. Code
1) 첫 코드(2022/10/18)
int[] answer = new int[2];
// 두 분모의 곱으로 통분하여 분자, 분모 계산
answer[0] = denum1*num2 + denum2*num1;
answer[1] = num1*num2;
// 분자, 분모 중 작은 것을 선택 후 최대공약수를 찾아 나눔
int small = answer[0]>answer[1] ? answer[1] : answer[0];
for(int i=small ; i>1 ; i--)
if(answer[0]%i==0 && answer[1]%i==0){ // i: 최대공약수
answer[0] /= i;
answer[1] /= i;
break;
}
return answer;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.0] 나머지 구하기 (0) | 2022.10.18 |
---|---|
[프로그래머스/Lv.0] 배열 두배 만들기 (0) | 2022.10.18 |
[프로그래머스/Lv.0] 숫자 비교하기 (0) | 2022.10.18 |
[프로그래머스/Lv.0] 두 수의 나눗셈 (0) | 2022.10.18 |
[프로그래머스/Lv.0] 몫 구하기 (0) | 2022.10.18 |