μ νμμ νλ³νκΈ° - Java [νλ‘κ·Έλλ¨Έμ€ μ λ¬Έ]
β€οΈ 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 |
- λΆμ 7/20μ κΈ°μ½λΆμ μ λλ€. λΆλͺ¨ 20μ μμΈμκ° 2, 5 μ΄κΈ° λλ¬Έμ μ νμμμ λλ€. λ°λΌμ 1μ returnν©λλ€.
- λΆμ 11/22λ κΈ°μ½λΆμλ‘ λνλ΄λ©΄ 1/2 μ λλ€. λΆλͺ¨ 2λ μμΈμκ° 2 λΏμ΄κΈ° λλ¬Έμ μ νμμ μ λλ€. λ°λΌμ 1μ returnν©λλ€.
- λΆμ 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 κ°μ²΄λ₯Ό λ κ° λ§λ€κ² λμλ€.. μ΄ λΆλΆμ λν΄μλ μΆκ°μ μΈ κ³΅λΆκ° νμν κ² κ°λ€. μμ§λ μ μ΄λ κ² λμ€λμ§ μ΄ν΄κ° μ κ°λ μ€β