MapleStory Finger Point Cute Line Smiley Blinking Hello Kitty Angel MapleStory Finger Point

๐Ÿƒ‍โ™€๏ธprogrammers/Java

หšโ‚Šโœฉโ€งโ‚Š ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - java ๋ถ„์ˆ˜์˜ ๋ง์…ˆ หšโ‚Šโœฉโ€งโ‚Š

HYEJU01 2024. 5. 14. 12:49
์ฒด๊ฐ Level : โ˜…โ˜…โ˜† 
Review: ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ , ๊ธฐ๋ณธ์ ์ธ ์ˆ˜ํ•™ ์ง€์‹ ํ•„์š”
์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜  = ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์„ ํ™œ์šฉ์„ ํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค!

 

 

 ๐Ÿ’ก๋ถ„๋ชจ ๋ถ„์ž์˜ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ , ๊ฐ๊ฐ ๋‚˜๋ˆ ์ฃผ๋ฉด ๊ธฐ์•ฝ๋ถ„์ˆ˜๊ฐ€ ๋œ๋‹ค.

 

 ๐Ÿ’ฌ ๊ธฐ์•ฝ๋ถ„์ˆ˜ ::  ๋ถ„๋ชจ์™€ ๋ถ„์ž์˜ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๊ฐ€ 1์ธ ๋ถ„์ˆ˜๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. 

์ฆ‰, ๋ถ„์ˆ˜์˜ ๋ถ„์ž์™€ ๋ถ„๋ชจ๊ฐ€ ์„œ๋กœ์†Œ์ธ ์ƒํƒœ, ๋” ์ด์ƒ ์•ฝ๋ถ„์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ฅผ ์˜๋ฏธ

 

 ๐Ÿ’ฌ ์œ ํด๋ฆฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ !! ๋‘ ์ˆ˜์˜ ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜์—ฌ GCD์ฐพ์Œ

a๋ฅผ ๐‘ b๋กœ, ๐‘ b๋ฅผ ๐‘Ÿ r๋กœ ๋ฐ”๊พธ๊ณ , ๐‘Ÿ r์ด 0์ด ๋  ๋•Œ๊นŒ์ง€ 2๋ฒˆ ๊ณผ์ •์„ ๋ฐ˜๋ณต

 

์œ ํด๋ฆฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜์‹ ์œ ํด๋ฆฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•ต์‹ฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆ˜ํ•™์  ์„ฑ์งˆ์— ๊ธฐ๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค

GCD ( ๐‘Ž , ๐‘ ) = GCD ( ๐‘ , ๐‘Ž % ๐‘ ) 

GCD(a,b)=GCD(b,a%b) ์—ฌ๊ธฐ์„œ % ๋Š” ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค.

 

//์ตœ๋Œ€๊ณต์•ฝ์ˆ˜(GCD, Greatest Common Divisor)๋Š” 
//๋‘ ๊ฐœ ์ด์ƒ์˜ ์ •์ˆ˜์˜ ๊ณตํ†ต๋œ ์•ฝ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜

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

 

class Solution {
    public int[] solution(int numer1, int denom1, int numer2, int denom2) {
        int[] answer = new int [2];
          //ํ†ต๋ถ„
        answer[0] = numer1 * denom2 + numer2 * denom1  ;
        answer[1] = denom1 * denom2 ;

 		//๋ถ„์ˆ˜์˜ ๋ถ„์ž์™€ ๋ถ„๋ชจ์˜ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜(GCD)
        int a =  answer[0] , b = answer[1];
       
        while (a != 0) {
            int temp = a;
            a = b % a;
            b = temp;
        }
        //๋ถ„์ž์™€ ๋ถ„๋ชจ๋ฅผ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด์ค๋‹ˆ๋‹ค.
        answer[0] = answer[0] / b;
        answer[1] = answer[1] / b;
        
        //๋‚˜๋ˆˆ ๊ฒฐ๊ณผ๋ฅผ ๋ถ„์ž์™€ ๋ถ„๋ชจ๋กœ ํ•˜๋Š” ๋ถ„์ˆ˜๊ฐ€ ๊ธฐ์•ฝ๋ถ„์ˆ˜
        return answer;
    }
}

 

 

 

[์‹คํŒจ] 

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ๋งž์•˜์ง€๋งŒ ๋ฐ˜๋ก€๊ฐ€ ๋งŽ์•˜๋‚˜๋ณด๋‹ค...  ๊ฑฐ์˜ ๋‹ค ํ‹€๋ ธ๋‹ค ใ… ใ… ใ… ใ… 

class Solution {
    public int[] solution(int numer1, int denom1, int numer2, int denom2) {
        int[] answer = new int [2];
        
        
            if (denom1 == denom2){
                answer[0] = numer1 + numer2;
                answer[1] = denom1;
            }else if (denom2 % denom1 == 0){
                int tmp = denom1;
                denom1 *= denom2/denom1; 
                numer1 *= denom2/tmp;
                
            }else if(denom1 % denom2 == 0){
                denom2 *= denom1/denom2; 
                numer2 *= denom1/denom2; 
            }else {
              int tmp = denom2;
                denom2 *= denom1; numer2 *= denom1;
                denom1 *= tmp; numer1 *= tmp;
            }
               
            answer[0] = numer1 + numer2;
            answer[1] = denom1;
        
        return answer;
    }
}