๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

[๋ฐฐ์—ด] 6. ๋’ค์ง‘์€ ์†Œ์ˆ˜

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2023. 12. 17.
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;
}

 

์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋‹ ๋ณด์ธ๋‹ค.

์ˆซ์ž๋ฅผ ๊ฑฐ๊พธ๋กœ ํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ• ์ค‘ ์ด๋ ‡๊ฒŒ ํ•ด๋„ ๋œ๋‹ค.

 

์ตœ๊ทผ ๋“ค์–ด ๊ฐํƒ„์ด ์—†์—ˆ๋Š”๋ฐ ์˜ค๋Š˜ ๋˜ ํ•œ ๋Œ€ ๋งž๊ณ  ๊ฐ„๋‹ค ใ…‹ใ…‹.

๋Œ“๊ธ€