Rainbow๐ŸŒˆCoder 2021. 9. 21. 17:15
728x90

๋ฒ„๋ธ” ์ •๋ ฌ์ด๋ž‘ ์˜†์— ์žˆ๋Š” ๊ฐ’๊ณผ ๋น„๊ตํ•ด์„œ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ์ •๋ ฌ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

์„ ํƒ ์ •๋ ฌ์€ ์ œ์ผ ์ž‘์€ ๊ฐ’์„ ์ฐพ์•„์„œ ์•ž์— ๊ฐ€์ ธ๋‹ค ๋†“๋Š” ์‹์œผ๋กœ ์ „๊ฐœ๋œ๋‹ค๋ฉด,

(์„ ํƒ ์ •๋ ฌ ์„ค๋ช… ๋งํฌ: c++ ์„ ํƒ ์ •๋ ฌ ํ™œ์šฉํ•ด์„œ ๋ฐฐ์—ด ์† ์ˆซ์ž๋“ค์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฐ”๊พธ๊ธฐ (tistory.com))

 

๋ฒ„๋ธ” ์ •๋ ฌ์€ ์ œ์ผ ํฐ ๊ฐ’์„ ์ ์ฐจ ๋’ค๋กœ ์œ ๋ฐฐ๋ณด๋‚ด๋Š” ์‹์œผ๋กœ ์ „๊ฐœ๋œ๋‹ค.

์™œ๋ƒํ•˜๋ฉด ์ฒซ ๋ฐฐ์—ด๊ฐ’๋ถ€ํ„ฐ ์ผ๊ด€๋˜๊ฒŒ ๋ฐ”๋กœ ์˜†(๋’ค)์— ์žˆ๋Š” ๋ฐฐ์—ด๊ฐ’๊ณผ ๋น„๊ตํ•ด์„œ ํฐ ๊ฐ’์€ ๋’ค๋กœ ๋ฌผ๋Ÿฌ๋‚˜๋„๋ก ์Šค์œ„์น˜๋ฅผ ๋ฐ˜๋ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

 

2 6 4 9 8 1 3 5 7 ๋ผ๋Š” 9๊ฐœ์˜ ์ˆซ์ž๋ฅผ ํ•œ ๋ฐฐ์—ด์— ๋‹ด๊ณ  ๋ฒ„๋ธ” ์ •๋ ฌ์„ ํ™œ์šฉํ•ด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฐ”๊พธ๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ํ•ด๋ณด์ž.

์ œ์ผ ์•ž ์ˆซ์ž๋ฅผ 0๋ฒˆ์งธ ์ธ๋ฑ์Šค, ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋ฅผ 8๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ผ ๊ฐ€์ •ํ•œ๋‹ค.

2 6 4 9 8 1 3 5 7     //2์™€ 6์„ ๋น„๊ตํ•œ๋‹ค. (2๊ฐ€ ๋” ์ž‘์Œ, ๊ทธ๋Œ€๋กœ)

2 6 4 9 8 1 3 5 7     //6๊ณผ 4๋ฅผ ๋น„๊ตํ•œ๋‹ค. 

2 4 6 9 8 1 3 5 7     //4๊ฐ€ 6๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค.

2 4 6 9 8 1 3 5 7     //6๊ณผ 9๋ฅผ ๋น„๊ตํ•œ๋‹ค. (6์ด ๋” ์ž‘์Œ, ๊ทธ๋Œ€๋กœ) : ์—ฌ๊ธฐ๋ถ€ํ„ฐ 9๋Š” ๋งค๋ฒˆ ๋น„๊ต๋Œ€์ƒ์ด ๋œ๋‹ค. ์ œ์ผ ํฌ๊ธฐ ๋•Œ๋ฌธ์—

2 4 6 9 8 1 3 5 7     //9์™€ 8์„ ๋น„๊ตํ•œ๋‹ค. 

2 4 6 8 9 1 3 5 7     //8์ด 9๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค.

2 4 6 8 9 1 3 5 7     //9์™€ 1๋ฅผ ๋น„๊ตํ•œ๋‹ค.

2 4 6 8 1 9 3 5 7     //1์ด 9๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค.

2 4 6 8 1 9 3 5 7     //3๊ณผ 9๋ฅผ ๋น„๊ตํ•œ๋‹ค.

2 4 6 8 1 3 9 5 7     //3์ด 9๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค.

2 4 6 8 1 3 9 5 7     //9์™€ 5๋ฅผ ๋น„๊ตํ•œ๋‹ค.

2 4 6 8 1 3 5 9 7    //5๊ฐ€ 8๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค.

2 4 6 8 1 3 5 9 7    //9์™€ 7์„ ๋น„๊ตํ•œ๋‹ค.

2 4 6 8 1 3 5 7 9    //7์ด ๋” ์ž‘์œผ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค. ๋น„๋กœ์†Œ ๊ฐ€์žฅ ํฐ ๊ฐ’์ธ 9๊ฐ€ ์ œ์ผ ๋’ค๋กœ<i=0์ผ๋•Œ, for๋ฌธ(8-i)๋งˆ๋ฌด๋ฆฌ>

์ด์ค‘ ํฌ๋ฌธ i์™€ j ํฌ์ง€์…˜์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

for (int i = 0; i < 8; i++) //์•ž๊ณผ ๋’ค๋ฅผ ๋น„๊ตํ•˜๋Š” ์‹์ด๋‹ค๋ณด๋‹ˆ i๋ฅผ ์ˆซ์ž๊ฐฏ์ˆ˜-1๋งŒํผ๋งŒ ๋Œ๋ฆฌ๋ฉด ๋œ๋‹ค. <8๋กœ ํ•ด๋„ ์ถฉ๋ถ„
{                                    
     for (int j = 0; j < 8 - i; j++) //์ˆซ์ž 9๊ฐœ๋ฉด 8๋ฒˆ๋งŒ ๋น„๊ต, ๋งˆ์ง€๋ง‰ ์ˆซ์ž๊ฐ€ 2๊ฐœ๋‚จ์œผ๋ฉด 1๋ฒˆ๋งŒ ๋น„๊ตํ•˜๋ฉด OK์ด๋ฏ€๋กœ

     {    

     }

}


 

............์ด์–ด์„œ 8๋ฒˆ์งธ ์ธ๋ฑ์Šค(9)๋ฅผ ์ œ์™ธํ•˜๊ณ  7๋ฒˆ ๋น„๊ต๋ฅผ ์‹คํ–‰ํ•ด์ฃผ๋ฉด ๋œ๋‹ค..........................<i=1 for๋ฌธ(8-i) ๋งˆ๋ฌด๋ฆฌ>

๊ฒฐ๊ณผ๋Š”

2 4 6 1 3 5 7 8 9 ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

 

............์ด์ œ 7,8๋ฒˆ์งธ ์ธ๋ฑ์Šค ์ œ์™ธ(8,9)ํ•˜๊ณ  6๋ฒˆ ๋น„๊ต๋ฅผ ์‹คํ–‰ํ•ด์ฃผ๋ฉด ๋œ๋‹ค....................<i=2 for๋ฌธ(8-i) ๋งˆ๋ฌด๋ฆฌ>

๊ฒฐ๊ณผ๋Š”

2 4 6 1 3 5 7 8 9 ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. 

 

..............์ด์ œ 6,7,8๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ์ œ์™ธ(7,8,9)ํ•˜๊ณ  5๋ฒˆ ๋น„๊ต ์‹คํ–‰ํ•ด์ฃผ๋ฉด ๋œ๋‹ค................<i=3 for๋ฌธ(8-i) ๋งˆ๋ฌด๋ฆฌ>

๊ฒฐ๊ณผ๋Š”

2 4 1 3 5 6 7 8 9 ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. 

 

 ............์ด์ œ 5,6,7,8๋ฒˆ์งธ ์ธ๋ฑ์Šค(6,7,8,9) ์ œ์™ธํ•˜๊ณ  4๋ฒˆ ๋น„๊ต๋ฅผ ์‹คํ–‰ํ•ด์ฃผ๋ฉด ๋œ๋‹ค..............<i=4 for๋ฌธ(8-i) ๋งˆ๋ฌด๋ฆฌ>

๊ฒฐ๊ณผ๋Š”

2 4 1 3 5 6 7 8 9 ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. 

 

.............์ด์ œ 4,5,6,7,8๋ฒˆ์งธ ์ธ๋ฑ์Šค(5,6,7,8,9) ์ œ์™ธํ•˜๊ณ  3๋ฒˆ ๋น„๊ต๋ฅผ ์‹คํ–‰ํ•ด์ฃผ๋ฉด ๋œ๋‹ค............<i=5 for๋ฌธ(8-i) ๋งˆ๋ฌด๋ฆฌ>

๊ฒฐ๊ณผ๋Š”

2 1 3 4 5 6 7 8 9 ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. 

 

..............์ด์ œ 3,4,5,6,7,8๋ฒˆ์งธ ์ธ๋ฑ์Šค(4,5,6,7,8,9) ์ œ์™ธํ•˜๊ณ  2๋ฒˆ ๋น„๊ต ์‹คํ–‰ํ•ด์ฃผ๋ฉด ๋œ๋‹ค........<i=6 for๋ฌธ(8-i) ๋งˆ๋ฌด๋ฆฌ>

๊ฒฐ๊ณผ๋Š”

2 1 3 4 5 6 7 8 9 ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. 

 

.............์ด์ œ 2,3,4,5,6,7,8๋ฒˆ์งธ ์ธ๋ฑ์Šค(3,4,5,6,7,8,9) ์ œ์™ธํ•˜๊ณ  1๋ฒˆ ๋น„๊ต ์‹คํ–‰ํ•ด์ฃผ๋ฉด ๋œ๋‹ค......<i=7 for๋ฌธ(8-i) ๋งˆ๋ฌด๋ฆฌ>

๊ฒฐ๊ณผ๋Š”

1 3 4 5 6 7 8 9 ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.<๋><๋”์ด์ƒ ๋น„๊ตํ•  ํ•„์š” ์—†๋‹ค.><i๊ฐ€ 0์—์„œ 7์ด ๋  ๋•Œ๊นŒ์ง€... ์—ฌ๋Ÿ๋ฒˆ์งธ for๋ฌธ ๋งˆ๋ฌด๋ฆฌ>

 

ํ•ต์‹ฌ: N๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์žˆ์„ ๋•Œ, ์–‘์˜†์„ ๋น„๊ตํ•˜๋Š” ํšŸ์ˆ˜๋Š” N-1ํšŒ๋ฉด ์ถฉ๋ถ„ํ•˜๋‹ค.

N๊ฐœ ๋ฐฐ์—ด์—์„œ ๋ฒ„๋ธ” ์ •๋ ฌ์„ ํ•˜๋ ค๋ฉด 

๋‘๋ฒˆ์งธ for๋ฌธ(j)์—์„œ ๋น„๊ต์—ฐ์‚ฐ์„ (N-1)๋ฒˆ ๋ถ€ํ„ฐ 1๋ฒˆ๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ๋„๋ก(๊ฐˆ์ˆ˜๋ก ์—ฐ์‚ฐํšŸ์ˆ˜๊ฐ€ ์ค„์–ด๋“ค๊ฒŒ๋” j-i )

์ฒซ๋ฒˆ์งธ for๋ฌธ(i)์„ ์ ์–ด๋„ (N-1)๋ฒˆ์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต์‹œ์ผœ์•ผ ํ•œ๋‹ค.

N์ด 3์ผ ๊ฒฝ์šฐ,

int main()
{
int temp = INT_MAX;
array<int, 3>arr = { 349,568,7};
for (int i = 0; i <2; i++) 
{                                       
for (int j = 0; j < 2 - i; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return 0;
}

๋ฒ„๋ธ”์ •๋ ฌ์€ ์œ„์™€ ๊ฐ™์ด int index๋‚˜ int min์„ ์ดˆ๊ธฐํ™” ์„ ์–ธํ•˜์ง€ ์•Š์•„๋„

์ด์ค‘ for๋ฌธ๊ณผ temp ์„ค์ •๋งŒ ์ž˜ํ•ด์ฃผ์–ด๋„ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค.

์•„๋ž˜๋Š” ์œ ํŠœ๋ธŒ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์ด๋‹ค.

์•„๋ž˜ ์˜ˆ์‹œ๋Š” ๋ฐฐ์—ด์ด 10๊ฐœ์ด๋‹ค.

 

#include <iostream>
#include <array>
using namespace std;

int main()
{
     int temp = INT_MAX;
     array<int, 10>arr = { 9,8,7,6,5,4,3,2,1,10 };
     for (int i = 0; i < 9; i++)
     {                                    
     for (int j = 0; j < 9 - i; j++)
//๋ฐฐ์—ด์€ 10์นธ์ด์ง€๋งŒ [j]์™€ [j+1]๋ฒˆ์งธ ๋ฐฐ์—ด์„ ๋น„๊ตํ•˜๋ฏ€๋กœ ์ฒ˜์Œ์— 9๋ฒˆ๋งŒ ๋น„๊ตํ•ด๋„ ๋จ
     {                                     
//์ฆ‰ j ๋„๋Š” ํšŸ์ˆ˜(์•ž๋’ค๋น„๊ต)๋ฅผ 9๋ฒˆ, 8๋ฒˆ, 7๋ฒˆ ~~~ 1๋ฒˆ๊นŒ์ง€๋งŒ ํ•˜๋ ค๋ฉด i๋Š” 8๊นŒ์ง€๋งŒ OK.
          if (arr[j] > arr[j + 1])
         {
               temp = arr[j];
              arr[j] = arr[j + 1];
              arr[j + 1] = temp;
         }
     }
}

for (auto ele : arr)
{
cout << ele << " ";
}
return 0;
}


์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘์—์„œ ๊ตฌํ˜„ํ•˜๊ธฐ๋Š” ๊ฐ€์žฅ ์‰ฝ์ง€๋งŒ ๊ฐ€์žฅ ๋น„ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

์„ ํƒ ์ •๋ ฌ๊ณผ ๋น„๊ตํ•ด๋ณด์ž๋ฉด ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ๋งŒ ๋”ฐ์ง€์ž๋ฉด n์˜ ์ œ๊ณฑ์œผ๋กœ ๋˜‘๊ฐ™์„ ์ˆ˜ ์žˆ์ง€๋งŒ

์„ ํƒ ์ •๋ ฌ์€ min๊ฐ’์ด ๋“ค์–ด์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ์–ตํ•ด๋†“์•˜๋‹ค๊ฐ€

์•ˆ์ชฝ for๋ฌธ ๋ฐ–์—์„œ ๊ธฐ์–ตํ•ด๋†“์€ ์ธ๋ฑ์Šค๋งŒ ์•ž์ชฝ ์ธ๋ฑ์Šค์™€ temp ๊ตํ™˜์ฒ˜๋ฆฌ ํ•ด์ฃผ๋ฉด ๋˜์ง€๋งŒ

๋ฒ„๋ธ” ์ •๋ ฌ์€ ์•ˆ์ชฝ for๋ฌธ ์•ˆ์—์„œ ์–‘์˜†์œผ๋กœ ๋งค๋ฒˆ temp ๊ตํ™˜์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ์‹œ๊ฐ„ ์†Œ์š”๋Ÿ‰์€ ๋” ๊ธธ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

728x90