2023. 10. 11. 10:29ใ์ธํ๋ฐ/์๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ฌธ : ์ฝ๋ฉํ ์คํธ ๋๋น
https://hyejin.tistory.com/1213
-> ์ด์ ๋ฌธ์ ํ์ด
6. ๋ค์ง์ ์์
์ค๋ช
N๊ฐ์ ์์ฐ์๊ฐ ์ ๋ ฅ๋๋ฉด ๊ฐ ์์ฐ์๋ฅผ ๋ค์ง์ ํ ๊ทธ ๋ค์ง์ ์๊ฐ ์์์ด๋ฉด ๊ทธ ์์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
์๋ฅผ ๋ค์ด 32๋ฅผ ๋ค์ง์ผ๋ฉด 23์ด๊ณ , 23์ ์์์ด๋ค. ๊ทธ๋ฌ๋ฉด 23์ ์ถ๋ ฅํ๋ค. ๋จ 910๋ฅผ ๋ค์ง์ผ๋ฉด 19๋ก ์ซ์ํ ํด์ผ ํ๋ค.
์ฒซ ์๋ฆฌ๋ถํฐ์ ์ฐ์๋ 0์ ๋ฌด์ํ๋ค.
์ ๋ ฅ
์ฒซ ์ค์ ์์ฐ์์ ๊ฐ์ N(3<=N<=100)์ด ์ฃผ์ด์ง๊ณ , ๊ทธ ๋ค์ ์ค์ N๊ฐ์ ์์ฐ์๊ฐ ์ฃผ์ด์ง๋ค.
๊ฐ ์์ฐ์์ ํฌ๊ธฐ๋ 100,000๋ฅผ ๋์ง ์๋๋ค.
์ถ๋ ฅ
์ฒซ ์ค์ ๋ค์ง์ ์์๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ์ถ๋ ฅ์์๋ ์ ๋ ฅ๋ ์์๋๋ก ์ถ๋ ฅํฉ๋๋ค.
์์ ์ ๋ ฅ 1
9
32 55 62 20 250 370 200 30 100
์์ ์ถ๋ ฅ 1
23 2 73 2 3
๋ฌธ์ ํ์ด 1
public ArrayList<Integer> solution(int n, String[] numbers)
{
ArrayList<Integer> answer = new ArrayList<>();
int[] tmp = new int[n];
for (int i = 0; i< n; i++)
{
tmp[i] = Integer.parseInt(new StringBuilder(numbers[i]).reverse().toString());
}
for (int i = 0; i < tmp.length; i++)
{
int cnt = 0;
for (int j = 1; j <= tmp[i]; j++)
{
if (tmp[i] % j == 0) {
cnt++;
}
}
if (cnt != 1 &&cnt <= 2) {
answer.add(tmp[i]);
}
}
return answer;
}
๐ฉ๐ป : '๋ค์ง๋๋ค' ๋ง ๋์ค๋ฉด ๊ฑฐ์ ๋ฌด์กฐ๊ฑด ๋ฐ์ฌ๋ก StringBuilder๋ง ์ฐ๋ ๋.. ๋ฐ์ฑํฉ๋๋ค...
์ฐ์ ๋๋ ์ ๋ ฅ์ ๋ฌธ์์ด๋ก ๋ฐ์๋ค๊ณ ์๊ฐํ๊ณ .. ์ด๋ฅผ StringBuilder์ ๋ด์ reverse ์ํจ ๋ค์, Integer.parseInt๋ฅผ ํตํด Integer๋ก ๋ณ๊ฒฝํด์คฌ๋ค.
๊ทธ ๋ค์, tmp[i]๊ฐ j๋ก ๋๋ ์ง๋ค๋ ๊ฑด ์์๊ฐ ์๋๋ผ๋ ๋ง์ด๋ฏ๋ก cnt++๋ฅผ ์ฆ๊ฐ์ํค๊ณ , ๊ทธ ๋ค์ cnt๊ฐ 1์ด ์๋๊ฑฐ๋ 2๋ณด๋ค ์์ ๊ฒฝ์ฐ์๋ง answer์ tmp[i] ๊ฐ์ ๋ฃ์ด์ฃผ๋๋ก ํ๋ค.
๋ฌธ์ ํ์ด 2
public ArrayList<Integer> solution2(int n, int[] arr)
{
ArrayList<Integer> answer = new ArrayList<>();
for (int i = 0; i < n; i++)
{
int tmp = arr[i];
int res = 0;
while (tmp > 0)
{
int t = tmp % 10;
res = res * 10 + t;
tmp = tmp / 10;
}
if (isPrime(res)) {
answer.add(res);
}
}
return answer;
}
public boolean isPrime(int num)
{
if (num == 1) {
return false;
}
for (int i = 2; i< num; i++)
{
if (num % i == 0) {
return false;
}
}
return true;
}
๐พ : ๊ฐ์ฌ๋์ ์ฐ์ tmp[i] ๊ฐ์ ๋ค์ง์ ๋ while๋ฌธ์ผ๋ก ๋๋ฉด์ 10์ผ๋ก ๋จผ์ ๋๋ ๋๋จธ์ง ๊ฐ์ ๊ตฌํ๊ณ (t), ๊ทธ ๋ค์ res์ res * 10 + t ์ ํด์ค๋ค. ๊ทธ ํ tmp์ 10์ผ๋ก ๋๋ ์ค ๊ฐ์ ๋ค์ ๋ฐ๋ณตํ๋๋ฐ 0์ด ์๋๋๊น์ง๋ง ํด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ res ๊ฐ์ด ์์์ธ์ง ํ์ธํ๋ฉด ๋๋๋ฐ isPrime ๋ฉ์๋๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด์ ์ด res ๊ฐ์ด 1์ด๋ฉด ์์๊ฐ ์๋๋ฏ๋ก false, ๊ทธ ๋ค์ res๊ฐ 2๋ถํฐ res์ ๊น์ง์ ๋ฐ๋ณต๋ฌธ์์ ๋๋ ์ง๋ ๊ฐ์ด ์๋ค๋ฉด ์์๊ฐ ์๋๋ฏ๋ก false๋ฅผ ๋ฐํํ๋๋ก ํ๋ค.
๊ทธ๋ฆฌ๊ณ true์ธ ๊ฒฝ์ฐ์๋ง answer์ add ํ๋๋ก ํ๋ค.