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

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

728x90

https://hyejin.tistory.com/1212

 

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

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

hyejin.tistory.com

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

 

 

 

5. ์†Œ์ˆ˜ (์—๋ผํ† ์Šคํ…Œ๋„ค์Šค ์ฒด) 

 

์„ค๋ช…

์ž์—ฐ์ˆ˜ N์ด ์ž…๋ ฅ๋˜๋ฉด 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

๋งŒ์•ฝ 20์ด ์ž…๋ ฅ๋˜๋ฉด 1๋ถ€ํ„ฐ 20๊นŒ์ง€์˜ ์†Œ์ˆ˜๋Š” 2, 3, 5, 7, 11, 13, 17, 19๋กœ ์ด 8๊ฐœ์ž…๋‹ˆ๋‹ค.

 

์ž…๋ ฅ

์ฒซ ์ค„์— ์ž์—ฐ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(2<=N<=200,000)์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

 

์ถœ๋ ฅ

์ฒซ ์ค„์— ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์‹œ ์ž…๋ ฅ 1 

20

 

์˜ˆ์‹œ ์ถœ๋ ฅ 1

8

 

 

๋ฌธ์ œ ํ’€์ด 1

public int solution(int num)
{
   int answer = 0;
   
   for (int i = 2; i <= num; i++)
   {
      int cnt = 0;
      for (int j = 1; j <= i; j++)
      {
         if (i % j == 0)
         {
            cnt++;
         }
      }
      if (cnt <= 2)
      {
         answer ++;
      }
   }
   
   return answer;
}

๐Ÿ‘ฉ‍๐Ÿ’ป : ์šฐ์„  ์ด๊ฑด ๋‚ด๊ฐ€ ํ‘ผ ๋ฐฉ์‹์ธ๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํƒ€์ž„ ์•„์›ƒ์ด ๋‚œ๋‹ค. ์ฑ„์  ์‚ฌ์ดํŠธ ์‹œ๊ฐ„ ์ œํ•œ์ด 1์ดˆ์—ฌ์„œ num์˜ ๊ฐ’์œผ๋กœ 20๋งŒ ์„ ์ฃผ๋ฉด ์‹œ๊ฐ„ ์ œํ•œ์—์„œ ๊ฑธ๋ฆฐ๋‹ค.. ์†Œ์ˆ˜ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋ผ๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ ๊ทธ ๋ฐฉ์‹์€ ๋ชจ๋ฅด๊ณ ... ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ•˜์ž๋‹ˆ ๋จธ๋ฆฌ๊ฐ€ ์•ˆ๋Œ์•„๊ฐ€์„œ... ์ฒ˜์Œ์œผ๋กœ ๋ฌธ์ œ ์ •๋‹ต ์ฒ˜๋ฆฌ ์ „์—.. ๊ฐ•์˜๋ฅผ ๋ดค๋‹ค... 

 

์•”ํŠผ ๋‚ด๊ฐ€ ํ‘ผ ๋ฐฉ์‹์€ ์ด์ค‘ for๋ฌธ์„ ๋Œ๋ฉด์„œ i % j == 0์ด๋ฉด cnt ์˜ ๊ฐ’์„ ์ฆ๊ฐ€ํ•ด์ฃผ๊ณ , ๋‘๋ฒˆ์งธ for๋ฌธ์„ ๋‚˜์™€์„œ cnt๊ฐ€ 2๋ณด๋‹ค ํฌ๋ฉด ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๋ง์ด๊ธฐ ๋•Œ๋ฌธ์— answer์— 1 ๋”ํ•˜์ง€ ์•Š๊ณ , 2๋ณด๋‹ค ์ดํ•˜์ผ ๊ฒฝ์šฐ์—๋งŒ 1 ๋”ํ•˜๋„๋ก ํ•ด์„œ ๋ฆฌํ„ดํ–ˆ๋‹ค. 

 

 

 

๋ฌธ์ œ ํ’€์ด 2

public int solution2(int n)
{
   int answer = 0;
   int[] ch = new int[n + 1];
   
   for (int i = 2; i<= n; i++)
   {
      if (ch[i] == 0)
      {
         answer++;
         for (int j = i; j<= n; j = j+ i)
         {
            ch[j] = 1;
         }
      }
   }
   
   return answer;
}

๐Ÿ‘พ : ์—๋ผํ† ์ŠคํŠธ๋„ค์Šค ์ฒด๋ž€ ์šฐ์„  ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ๋ฐ ๋ฐฐ์—ด์„ ์ฃผ์–ด์ง„ n+1๊ฐœ(n๋„ ํฌํ•จ๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ)  ๋งŒํผ ๋งŒ๋“ค์–ด์„œ ๋ชจ๋‘ 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ ๋ฐฐ์—ด์„ for๋ฌธ์„ ๋Œ๋‹ค๊ฐ€ ch[i] == 0์ด๋ฉด answer++ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. answer์— 1 ๋”ํ•œ ๋‹ค์Œ, for๋ฌธ์„ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด์„œ ch[i] == 0 ์ด์—ˆ๋˜ i์˜ ๋ฐฐ์ˆ˜ ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ๋ฐฐ์—ด์—๋Š” ๋ชจ๋‘ 1๋กœ ์ดˆ๊ธฐํ™”ํ•ด์คฌ๋‹ค. (i์˜ ๋ฐฐ์ˆ˜๋Š” ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ) 

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‹œ๊ฐ„ ์ œํ•œ ๊ฑธ๋ฆฌ์ง€ ์•Š๊ณ  ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90