์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ์„ ํƒ ์ •๋ ฌ

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

728x90

 

 

https://hyejin.tistory.com/1239

 

์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch05. Stack, Queue (์ž๋ฃŒ๊ตฌ์กฐ) : ์‘๊ธ‰์‹ค

https://hyejin.tistory.com/1238 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch05. Stack, Queue (์ž๋ฃŒ๊ตฌ์กฐ) : ๊ต์œก๊ณผ์ •์„ค๊ณ„ https://hyejin.tistory.com/1237 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch05. Stack, Queue (์ž๋ฃŒ๊ตฌ์กฐ) : ๊ณต์ฃผ ๊ตฌํ•˜๊ธฐ

hyejin.tistory.com

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

 

 

 

1. ์„ ํƒ ์ •๋ ฌ 

์„ค๋ช…

N๊ฐœ์ด ์ˆซ์ž๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์„ ํƒ์ •๋ ฌ์ž…๋‹ˆ๋‹ค.

 

์ž…๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(1<=N<=100)์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์ค„์— N๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ž์—ฐ์ˆ˜๋Š” ์ •์ˆ˜ํ˜• ๋ฒ”์œ„ ์•ˆ์— ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ถœ๋ ฅ

์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ์ˆ˜์—ด์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

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

6
13 5 11 7 23 15

 

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

5 7 11 13 15 23

 

 

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

public int[] solution(int n, int[] arr)
{
   for (int i = 0; i < n; i++)
   {
      int idx = 0;
      int min = Integer.MAX_VALUE;
      for (int j = i ; j < n; j++)
      {
         if (arr[j] < min) {
            min = arr[j];
            idx = j;
         }
      }
      int tmp = arr[i];
      arr[i] = min;
      arr[idx] = tmp;
   }
   
   return arr;
}

๐Ÿ‘ฉ‍๐Ÿ’ป : ์šฐ์„  ์„ ํƒ ์ •๋ ฌ์€ ์ด์ค‘ for๋ฌธ์„ ๋Œ๋ฉด์„œ i ๊ฐ’์€ ๊ณ ์ •์‹œํ‚ค๊ณ  ๊ทธ ๋‹ค์Œ j ๊ฐ€ ๋ฐฐ์—ด์„ ๋Œ๋ฉด์„œ arr[i] ๊ณผ arr[j] ๋น„๊ตํ•ด์„œ ๋” ์ž‘์€ ๊ฐ’์˜ ์ธ๋ฑ์Šค ๊ฐ’์„ idx ์— ์ €์žฅํ•œ๋‹ค. 

๊ทธ ๋‹ค์Œ์— tmp ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋‘๊ณ , arr[i] ๊ฐ’๊ณผ arr[idx] ๊ฐ’์„ ์„œ๋กœ ๊ตํ™˜ํ•ด์ฃผ๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค ! 

๋‚˜๋Š” min์ด๋ผ๋Š” ๋ณ€์ˆ˜๋„ ๋‘์–ด์„œ ์ตœ์†Ÿ๊ฐ’์„ min์— ๋„ฃ์–ด์คฌ๋Š”๋ฐ... idx ๊ฐ’๋งŒ ์žˆ์–ด๋„ ๋˜๋Š”๊ฑธ ์ด์ œ ์•Œ์•˜๋‹ค ใ…‹ 

 

 

 

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

public int[] solution2(int n, int[] arr)
{
   for (int i = 0; i < n - 1; i++)
   {
      int idx = i;
      for (int j = i + 1; j < n; j++)
      {
         if (arr[j] < arr[idx]) {
            idx = j;
         }
      }
      int tmp = arr[i];
      arr[i] = arr[idx];
      arr[idx] = tmp;
   }
   
   return arr;
}

 

๐Ÿ‘พ : ๊ฐ•์‚ฌ๋‹˜์€ ์ด์ค‘ for๋ฌธ์„ ๋Œ ๋•Œ, i ๊ฐ’์€ 0 ๋ถ€ํ„ฐ n-1์ „ ๊นŒ์ง€๋งŒ ๋Œ๊ฒŒ ํ–ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด i ๊ฐ€ ๊ตณ์ด  n ๊นŒ์ง€ ๊ฐˆ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ !! (j๊ฐ€ ๋Œ๋ฉด์„œ n ๊นŒ์ง€ ๊ฐ€๊ณ  ๊ฐ’์„ ๋น„๊ต ํ›„ ๋ฐ”๊ฟ€ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ) 

 

๊ทธ๋ฆฌ๊ณ  j๋Š” i + 1 ๋ถ€ํ„ฐ n ๊นŒ์ง€ ๋Œ๋Š”๋ฐ ์ด๋•Œ idx ๊ฐ’์€ i ๊ฐ’์„ ์ €์žฅํ•ด๋‘”๋‹ค. 

๊ทธ ๋‹ค์Œ arr[j] ์™€ arr[idx] ๊ฐ’ ์ค‘  ๋” ์ž‘์€ ๊ฐ’์„ idx ์— ์ธ๋ฑ์Šค ๊ฐ’์„ ์ €์žฅํ•˜๊ณ , 

๋‘๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์„ ๋‹ค ๋Œ๊ณ ๋‚˜์„œ , tmp ๋ณ€์ˆ˜๋ฅผ ๋‘์–ด arr[i]์™€ arr[idx] ๊ฐ’์„ ์„œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด 

 

์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ๋กœ ๋œ๋‹ค ! 

 

 

 

 

728x90