โค๏ธ 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 ๊ฐ์ฒด๋ฅผ ๋ ๊ฐ ๋ง๋ค๊ฒ ๋์๋ค.. ์ด ๋ถ๋ถ์ ๋ํด์๋ ์ถ๊ฐ์ ์ธ ๊ณต๋ถ๊ฐ ํ์ํ ๊ฒ ๊ฐ๋ค. ์์ง๋ ์ ์ด๋ ๊ฒ ๋์ค๋์ง ์ดํด๊ฐ ์ ๊ฐ๋ ์คโ
'Programmers lv-0' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์น์์ด (1) - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.28 |
---|---|
๋ก๊ทธ์ธ ์ฑ๊ณต? - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.28 |
๊ฒน์น๋ ์ ๋ถ์ ๊ธธ์ด - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.28 |
ํํ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.28 |
๋ฑ์ ๋งค๊ธฐ๊ธฐ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.28 |
ํน์ดํ ์ ๋ ฌ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (1) | 2022.11.28 |
๋๊ธ