[๋ฐฐ์ด] 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
<<ํ์ด>>
-๋์ ํ์ด-
ใ ใ ์ผ๋จ ์ด ๋ฌธ์ ๋ ์์งํ ์ข ์น์ํ์ง ๋ชปํ๋ค. ๊ทธ๋ฌ๋ค ๋ณด๋ ์ค๊ตฌ๋๋ฐฉ์ผ๋ก ํ์๊ณ , ์์๋ง ์ ๋ต์ด ๋์๋ค.
๋ด ํ์ด๋ ๋ง๋๊ฑฐ ๊ฐ์๋ฐ ์ด๋์ ํ๋ฆฐ ๊ฒ์ธ์ง ํ์ ์ด ๋์ง ์๋๋ค.
import java.util.Scanner;
import java.util.Stack;
class Main {
public int[] solution(int n, int[] arr) {
StringBuilder sb = new StringBuilder();
Stack<Integer> stack = new Stack<>();
int[] brr = new int[n];
int index = 0;
for (int x : arr) {
brr[index++] = Integer.parseInt(sb.append(String.valueOf(x)).reverse().toString());
sb.setLength(0);
}
for (int c : brr) {
int count = 0;
for (int i = 2; i < 10; i++) {
if ((c % i == 0 && c >= 10) || c == 1 ) count++;
}
if (count == 0) stack.push(c);
}
int stackSize = stack.size();
int[] answer = new int[stackSize];
for (int i = stackSize - 1; i >= 0; i--) {
answer[i] = stack.pop();
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = in.nextInt();
}
for (int x : T.solution(n, arr)) {
System.out.print(x + " ");
}
}
}
stack, stringBuilder ๋ฑ๋ฑ ๋ง์ ๊ฒ๋ค์ ์ด์ฉํ๋ค.
*stringBuilder ๊ฐ์ ๊ฒฝ์ฐ ๋ฏธ๋ฆฌ ์ ํด๋ ๋ฐฐ์ด์ ๊ณต๊ฐ์ ์์ ๋กญ๊ฒ ํ ์ ์๊ฒ๋ ํ๋ฉด์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
ํ์ง๋ง ์ด๋, toString์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ฐฐ์ด์ ์๋ ๋ชจ๋ ๊ฒ๋ค์ด ํฉ์ณ์ ์ถ๋ ฅ์ด ๋๋ค. ์ ์ฉํ์ง๋ง, ์ํฉ์ ๋ง์ง ์์ผ๋ฉด ์ํ๋ ๊ฒฐ๊ณผ ๊ฐ์ ์ป์ง ๋ชปํ๋ค.
-๊ฐ์ฌ๋ ํ์ด-
import java.util.ArrayList;
import java.util.Scanner;
class Main {
public boolean isPrime(int n ){
if (n == 1) return false;
for (int i = 2; i < n; i++) {
if (n % i == 0) return false;
}
return true;
}
public ArrayList<Integer> solution(int n, int[] arr) {
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
int res = 0;
int tmp = arr[i];
while (tmp > 0) {
int t = tmp % 10;
res = res * 10 + t;
tmp = tmp / 10;
}
if (isPrime(res)) list.add(res);
}
return list;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = in.nextInt();
}
for (int x : T.solution(n, arr)) {
System.out.print(x + " ");
}
}
}
์ ์ญ์ ๋๋ฌด ๊น๋ํ๋ค.
ArrayList๋ฅผ ํ์ฉํ๊ณ
ํนํ๋,
while (tmp > 0) {
int t = tmp % 10;
res = res * 10 + t;
tmp = tmp / 10;
}
์ด ์๊ณ ๋ฆฌ์ฆ์ด ๋ ๋ณด์ธ๋ค.
์ซ์๋ฅผ ๊ฑฐ๊พธ๋ก ํ๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ ์ค ์ด๋ ๊ฒ ํด๋ ๋๋ค.
์ต๊ทผ ๋ค์ด ๊ฐํ์ด ์์๋๋ฐ ์ค๋ ๋ ํ ๋ ๋ง๊ณ ๊ฐ๋ค ใ ใ .
'์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฐ์ด] 8. ๋ฑ์๊ตฌํ๊ธฐ (0) | 2023.12.18 |
---|---|
[๋ฐฐ์ด] 7. ์ ์ ๊ณ์ฐ (1) | 2023.12.17 |
[๋ฐฐ์ด] 5. ์์(์๋ผํ ์คํ ๋ค์ค ์ฒด) (1) | 2023.12.14 |
[๋ฐฐ์ด] 4. ํผ๋ณด๋์น ์์ด (1) | 2023.12.12 |
[๋ฐฐ์ด] 3. ๊ฐ์ ๋ฐ์ ๋ณด (0) | 2023.12.12 |
๋๊ธ