์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜2. Array(1, 2์ฐจ์› ๋ฐฐ์—ด) : ๋’ค์ง‘์€ ์†Œ์ˆ˜

2023. 10. 11. 10:29ใ†์ธํ”„๋Ÿฐ/์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ์ž…๋ฌธ : ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„

728x90

 

https://hyejin.tistory.com/1213

 

์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜2. Array(1, 2์ฐจ์› ๋ฐฐ์—ด) : ์†Œ์ˆ˜ (์—๋ผํ† ์Šคํ…Œ๋„ค์Šค ์ฒด)

https://hyejin.tistory.com/1212 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜2. Array(1, 2์ฐจ์› ๋ฐฐ์—ด) : ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด https://hyejin.tistory.com/1211 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜2. Array(1, 2์ฐจ์› ๋ฐฐ์—ด) : ๊ฐ€์œ„ ๋ฐ”์œ„

hyejin.tistory.com

-> ์ด์ „ ๋ฌธ์ œ ํ’€์ด 

 

 

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 ํ•˜๋„๋ก ํ–ˆ๋‹ค. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90