๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Programmers lv-0

์œ ํ•œ์†Œ์ˆ˜ ํŒ๋ณ„ํ•˜๊ธฐ - Java [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž…๋ฌธ]

by ๊ทคํ”ผํ‚ค 2022. 11. 28.

 

โค๏ธ Problem

๋”๋ณด๊ธฐ
  • ๋ฌธ์ œ
    ์†Œ์ˆ˜์  ์•„๋ž˜ ์ˆซ์ž๊ฐ€ ๊ณ„์†๋˜์ง€ ์•Š๊ณ  ์œ ํ•œ๊ฐœ์ธ ์†Œ์ˆ˜๋ฅผ ์œ ํ•œ์†Œ์ˆ˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ถ„์ˆ˜๋ฅผ ์†Œ์ˆ˜๋กœ ๊ณ ์น  ๋•Œ ์œ ํ•œ์†Œ์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ถ„์ˆ˜์ธ์ง€ ํŒ๋ณ„ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์œ ํ•œ์†Œ์ˆ˜๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ๋ถ„์ˆ˜์˜ ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    1) ๊ธฐ์•ฝ๋ถ„์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ด์—ˆ์„ ๋•Œ, ๋ถ„๋ชจ์˜ ์†Œ์ธ์ˆ˜๊ฐ€ 2์™€ 5๋งŒ ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    2) ๋‘ ์ •์ˆ˜ a์™€ b๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, a/b๊ฐ€ ์œ ํ•œ์†Œ์ˆ˜์ด๋ฉด 1์„, ๋ฌดํ•œ์†Œ์ˆ˜๋ผ๋ฉด 2๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

  • ์ œํ•œ ์‚ฌํ•ญ
    • a, b๋Š” ์ •์ˆ˜
    • 0 < a ≤ 1,000
    • 0 < b ≤ 1,000

 

  • ์ž…์ถœ๋ ฅ ์˜ˆ & ์„ค๋ช…
no a b result
1 7 20 1
2 11 22 1
3 12 21 2
  1. ๋ถ„์ˆ˜ 7/20์€ ๊ธฐ์•ฝ๋ถ„์ˆ˜ ์ž…๋‹ˆ๋‹ค. ๋ถ„๋ชจ 20์˜ ์†Œ์ธ์ˆ˜๊ฐ€ 2, 5 ์ด๊ธฐ ๋•Œ๋ฌธ์— ์œ ํ•œ์†Œ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์„ returnํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ถ„์ˆ˜ 11/22๋Š” ๊ธฐ์•ฝ๋ถ„์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด 1/2 ์ž…๋‹ˆ๋‹ค. ๋ถ„๋ชจ 2๋Š” ์†Œ์ธ์ˆ˜๊ฐ€ 2 ๋ฟ์ด๊ธฐ ๋•Œ๋ฌธ์— ์œ ํ•œ์†Œ์ˆ˜ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์„ returnํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ถ„์ˆ˜ 12/21๋Š” ๊ธฐ์•ฝ๋ถ„์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด 4/7 ์ž…๋‹ˆ๋‹ค. ๋ถ„๋ชจ 7์€ ์†Œ์ธ์ˆ˜๊ฐ€ 7 ์ด๋ฏ€๋กœ ๋ฌดํ•œ์†Œ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 2๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

 


 

๐Ÿ’› Solution

ํ’€์ด

import java.util.ArrayList;
import java.util.List;
class Solution {
    public int solution(int a, int b) {
        int common = gcd(a, b);
        b = b/common;

        ArrayList<Integer> arr = new ArrayList<>();
        for(int i=1; i<=b; i++) {
            if(b%i==0) {
                arr.add(Integer.valueOf(i));
            }
        }

        ArrayList<Integer> check = new ArrayList<>();
        for(int i=0; i<arr.size(); i++) {
            if(arr.get(i)==1 || arr.get(i)%2==0 || arr.get(i)%5==0) {
                continue;
            } else {
                check.add(i);
            }
        }         

        if(check.isEmpty()) {
            return 1;
        } else {
            return 2;
        }

    }

    //์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• -> ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ์ถ”์ถœ
    //= ๊ฐ ๋ถ„์ˆ˜์˜ ๋ถ„์ž์™€ ๋ถ„๋ชจ๋ฅผ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ๊ธฐ์•ฝ๋ถ„์ˆ˜๋กœ ๋งŒ๋“ ๋‹ค
    public static int gcd(int num1, int num2) {

        int a = Math.max(num1, num2);
        int b = Math.min(num1, num2);
        int tmp = a;
        int c = 0;

        while (b!=0) {
            c = a%b;
            a = b;
            b = c;
        }

        return a;

    }

}

 

์ฒ˜๋ฆฌ์†๋„ Very Good


 

๐Ÿ’œ Comment

์ด ๋ฌธ์ œ์—์„œ ๊ฐ€์žฅ ๊ณ ๋‚œ์„ ๊ฒช์€ ๊ฑด ArrayList.isEmpty()์˜€๋‹ค.

๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ๊ทธ๋ฆผ์€ ์ธ์ˆ˜ a์™€ b์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•ด์„œ ๊ธฐ์•ฝ๋ถ„์ˆ˜ํ™” ํ•œ ๋‹ค์Œ์— arr์— ๋ถ„๋ชจ(b)์˜ ์†Œ์ธ์ˆ˜๋ฅผ ๋‹ค ๋„ฃ์–ด๋‘๊ณ , arr[i]์˜ ๊ฐ’์ด 1, 2 ๋˜๋Š” 5์ผ ๋•Œ arr.remove(i)๋ฅผ ํ•œ ๋’ค์— arr.isEmpty() ์‹คํ–‰ ๊ฐ’์ด true๋ฉด ์œ ํ•œ ์†Œ์ˆ˜ / false๋ฉด ๋ฌดํ•œ ์†Œ์ˆ˜๋กœ ํŒ๋ณ„๋‚˜๋Š” ๊ฒƒ์ด์—ˆ๊ฑด๋งŒ...

 

import java.util.ArrayList;
import java.util.List;
class Solution {
    public int solution(int a, int b) {
        int common = gcd(a, b);
        b = b/common;

        ArrayList<Integer> arr = new ArrayList<>();
        for(int i=1; i<=b; i++) {
            if(b%i==0) {
                arr.add(Integer.valueOf(i));
            }
        }

        for(int i=0; i<arr.size(); i++) {
            if(arr.get(i)==1 || arr.get(i)%2==0 || arr.get(i)%5==0) {
                arr.remove(i);
            } else {
                continue;
            }
        }         

//        if(arr.size() == 0) {
        if(arr.isEmpty()) {
            return 2;
        } else {
            return 1;
        }

    }

    //์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• -> ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ์ถ”์ถœ
    //= ๊ฐ ๋ถ„์ˆ˜์˜ ๋ถ„์ž์™€ ๋ถ„๋ชจ๋ฅผ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ๊ธฐ์•ฝ๋ถ„์ˆ˜๋กœ ๋งŒ๋“ ๋‹ค
    public static int gcd(int num1, int num2) {

        int a = Math.max(num1, num2);
        int b = Math.min(num1, num2);
        int tmp = a;
        int c = 0;

        while (b!=0) {
            c = a%b;
            a = b;
            b = c;
        }

        return a;

    }

}

 

arr.size()==0 ๋„ ์จ๋ณด๊ณ  arr.isEmpty() ๋„ ์จ๋ดค์ง€๋งŒ ๊ณ„์†ํ•ด์„œ arr๊ฐ€ ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๊ณ  ๋‚˜์˜ค๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ArrayList ๊ฐ์ฒด๋ฅผ ๋‘ ๊ฐœ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๋‹ค.. ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ์ถ”๊ฐ€์ ์ธ ๊ณต๋ถ€๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ์•„์ง๋„ ์™œ ์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋Š”์ง€ ์ดํ•ด๊ฐ€ ์•ˆ ๊ฐ€๋Š” ์ค‘โ“

 

7์ !!!!!!!!! ํ˜„์žฌ ์ˆœ์œ„ 12931์œ„๐Ÿคฉ๐Ÿคฉ

 

 

 

 

๋Œ“๊ธ€