Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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
more
Archives
Today
Total
관리 메뉴

개발자 도전기

[국비지원] 49일차 - 분수의 덧셈 본문

개발공부/TIL

[국비지원] 49일차 - 분수의 덧셈

jnnjnn 2024. 4. 17. 21:55

 

오늘은 오랜만에 프로그래머스 문제를 풀어서 풀이를 올려본다

 

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

 

프로그래머스

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

programmers.co.kr

 

 

두 분수의 합을 구한 후 분자와 분모가 서로소인 기약분수가 되게 하는 문제이다.

 

class Solution {
    public int[] solution(int numer1, int denom1, int numer2, int denom2) {
        // 두 분모의 최대공약수 구하기
        int G = GCD(denom2, denom1);
        // 두 분모의 최소 공배수 구하기
        int LCM = denom1 * denom2 / G;
        
        // 분모가 최소공배수일 때 분자의 값 구하기
        numer1 = mul(numer1, denom1, LCM);
        numer2 = mul(numer2, denom2, LCM);
        
        int numer = numer1 + numer2;
        // 두 분수의 덧셈 후 다시 분자와 분모의 최대공약수 구하기
        G = GCD(numer, LCM);
        // 서로소 만들기
        LCM /= G;
        numer /= G;
        
        return new int[]{numer, LCM};
    }
    
    // 최대공약수 구하기
    public int GCD(int max, int min){
        int rest = max % min;
        return rest == 0? min : GCD(min,rest);
    }
    
    // 분모가 최소공배수일 때 분자의 값 구하기
    public int mul(int numer, int denom, int LCM){
        int r = 1;
        if(denom != LCM){
            r =LCM / denom;
        }
        return r*numer;
    }
}

 

 

예전에 정리해두었던 유클리드 호제법을 사용해 풀어보았다

 

2024.02.29 - [개발공부/TIL] - [국비지원] 17일차- 프로그래머스.피자 나눠 먹기(2) GCD, LCM

 

[국비지원] 17일차- 프로그래머스.피자 나눠 먹기(2) GCD, LCM

오늘의 문제 class Solution { public int solution(int n) { int result = 0; loop: for(int i = 1; i

abc-datatype.tistory.com

 

 

1. 분모의 최소공배수로 통분한다.

2. 분자와 분모를 기약분수로 만든다

 

의 순서로 풀었는데 풀고 다른 분들의 풀이를 보니 분모의 최소공배수를 구할 필요 없이 두 분수를 통분해서 더한 다음 최대공약수로 나눠도 되는거였다 ..

 

 

2024.04.17 - [개발공부/Spring] - [Spring] PreparedStatement를 이용해서 데이터베이스 출력하기

 

[Spring] PreparedStatement를 이용해서 데이터베이스 출력하기

PreparedStatement JDBC의 인터페이스 중 하나이다 SQL 쿼리의 일부를 동적으로 바꿀 수 있다 입력 매개변수를 안전하게 처리할 수 있다 - setString() 메소드 사용 Statement가 아닌 PreparedStatement를 사용하는

abc-datatype.tistory.com

 

2024.04.17 - [개발공부/SQL] - [SQL] 명령문

 

[SQL] 명령문

스키마(schema) 데이터베이스의 구조를 정의하는 개념 테이블을 포함한다 // 스키마 생성하기 CREATE DATABASE test1; 테이블(Tables) 데이터를 저장하는 데 사용하는 구조적 객체 열(Column)과 행(Row)으로 구

abc-datatype.tistory.com

 

'개발공부 > TIL' 카테고리의 다른 글

[국비지원] 51일차  (0) 2024.04.19
[국비지원] 50일차  (0) 2024.04.18
[국비지원] 48일차  (0) 2024.04.17
[국비지원] 47일차  (0) 2024.04.16
[국비지원] 46일차  (0) 2024.04.12