๊ด€๋ฆฌ ๋ฉ”๋‰ด

C-log

๐Ÿงช์„ ํƒ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—ฐ์Šต ๋ณธ๋ฌธ

๐Ÿง Algorithm/Baekjoon๐Ÿ’ก

๐Ÿงช์„ ํƒ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—ฐ์Šต

4:Bee 2023. 12. 30. 17:58
728x90

์„ ํƒ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„์„ list for๋ฌธ์„ ํ†ตํ•ด์„œ list๊ธธ์ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์›์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ๊ตฌํ˜„ํ•˜๋ คํ–ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž

arr = [7, 5, 9, 0, 1, 6, 2, 4, 8]
for i in arr:  # ๋น„๊ต๊ฐ’
    min = i
    for ii in arr:
        if min > ii:
            print(i)
            min = ii
    # switch๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„  index๋ฅผ ์ด์šฉํ•ด์•ผํ•œ๋‹ค
    # for ii in range(1,len(arr)):
        # if min < arr[ii] :
           # print(arr[ii])
           # min = arr[ii]


์ด๋ ‡๊ฒŒ ๊ตฌํ˜”์„ ๋•Œ ๋ฌธ์ œ๋Š” ๊ฐ ์›์†Œ๋“ค์„ ์Šค์œ„์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋‹ค. (์ง€๊ธˆ์˜ ๋‚ด๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ์ง€์‹์œผ๋ก  ๊ทธ๋ ‡๋‹ค) ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” list์˜ ๊ธธ์ด๋ฅผ for๋ฌธ์˜ i๋กœ ๋ฐ˜ํ™˜ ๋ฐ›์•„์„œ ๊ฐ list์˜ index๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฐ–์— ์—†๋‹ค. ์ด๋ฅผ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

arr = [7, 5, 9, 0, 1, 6, 2, 4, 8]

for i in range(len(arr)):
    min = i  # index๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.
    for ii in range(i+1, len(arr)):
        if arr[min] > arr[ii]:
            min = ii
    arr[min], arr[i] = arr[i], arr[min]
print(arr)

์šฐ์„  ๋ณ€ํ™”๋˜๋Š” ์ˆœ์„œ๋ฅผ ์•Œ์•„์•ผํ•œ๋‹ค. ๋ณ€ํ™”๋˜๋Š” ์ˆœ์„œ๋Š” i๋ฒˆ์งธ index๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‘๋ฒˆ์งธ for๋ฌธ์—์„œ i๋ฒˆ ๋‹ค์Œ ๋‹จ๊ณ„๋ถ€ํ„ฐ ๋ชจ๋“  ์š”์†Œ๋“ค์„ ๋น„๊ตํ•œ๋‹ค. ๋ชจ๋“  ๊ฐ’๋“ค์„ ๋น„๊ตํ•˜๋Š” ๋™์•ˆ arr์€ ์•„๋ฌด์ผ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค. ๋‹ค๋งŒ min์€ ํ˜„์žฌ ๋ฆฌ์ŠคํŠธ์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ๋Š”๋‹ค. ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ 0์ด ๋˜๊ณ  ์Šค์œ„์น˜ ๊ตฌ๋ฌธ์—์„œ ๊ฐ’์„ ์„œ๋กœ ์Šค์œ„์น˜ํ•˜๊ณ  range(i+1,len(arr))์— ๋งž์ถฐ์„œ ๋‹ค์Œ i๋ฒˆ์งธ๋ฅผ ๋‹ค์‹œ ๋น„๊ตํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์‹œ์ž‘๋‹จ๊ณ„๊ฐ€ i+1์ด๊ธฐ ๋•Œ๋ฌธ์— ์Šค์œ„์น˜๋œ ์•ž์ž๋ฆฌ index min๋ถ€๋ถ„์€ ๋ฌด์‹œํ•˜๊ณ  ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฒ€ํ† ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

  ...
 for ii in range(i+1, len(arr)):
        if arr[min] > arr[ii]:
            min = ii  # 5
        print(ii, arr)
    arr[min], arr[i] = arr[i], arr[min]  # 5, 7
print(arr)
 
1 [7, 5, 9, 0, 1, 6, 2, 4, 8]
2 [7, 5, 9, 0, 1, 6, 2, 4, 8]
3 [7, 5, 9, 0, 1, 6, 2, 4, 8]
4 [7, 5, 9, 0, 1, 6, 2, 4, 8]
5 [7, 5, 9, 0, 1, 6, 2, 4, 8]
6 [7, 5, 9, 0, 1, 6, 2, 4, 8]
7 [7, 5, 9, 0, 1, 6, 2, 4, 8]
8 [7, 5, 9, 0, 1, 6, 2, 4, 8]
2 [0, 5, 9, 7, 1, 6, 2, 4, 8]
3 [0, 5, 9, 7, 1, 6, 2, 4, 8]
4 [0, 5, 9, 7, 1, 6, 2, 4, 8]
5 [0, 5, 9, 7, 1, 6, 2, 4, 8]
6 [0, 5, 9, 7, 1, 6, 2, 4, 8]
7 [0, 5, 9, 7, 1, 6, 2, 4, 8]
8 [0, 5, 9, 7, 1, 6, 2, 4, 8]
3 [0, 1, 9, 7, 5, 6, 2, 4, 8]
4 [0, 1, 9, 7, 5, 6, 2, 4, 8]
5 [0, 1, 9, 7, 5, 6, 2, 4, 8]
6 [0, 1, 9, 7, 5, 6, 2, 4, 8]
7 [0, 1, 9, 7, 5, 6, 2, 4, 8]
8 [0, 1, 9, 7, 5, 6, 2, 4, 8]
4 [0, 1, 2, 7, 5, 6, 9, 4, 8]
5 [0, 1, 2, 7, 5, 6, 9, 4, 8]
6 [0, 1, 2, 7, 5, 6, 9, 4, 8]
7 [0, 1, 2, 7, 5, 6, 9, 4, 8]
8 [0, 1, 2, 7, 5, 6, 9, 4, 8]
5 [0, 1, 2, 4, 5, 6, 9, 7, 8]
6 [0, 1, 2, 4, 5, 6, 9, 7, 8]
7 [0, 1, 2, 4, 5, 6, 9, 7, 8]
8 [0, 1, 2, 4, 5, 6, 9, 7, 8]
6 [0, 1, 2, 4, 5, 6, 9, 7, 8]
7 [0, 1, 2, 4, 5, 6, 9, 7, 8]
8 [0, 1, 2, 4, 5, 6, 9, 7, 8]
7 [0, 1, 2, 4, 5, 6, 9, 7, 8]
8 [0, 1, 2, 4, 5, 6, 9, 7, 8]
8 [0, 1, 2, 4, 5, 6, 7, 9, 8]
[0, 1, 2, 4, 5, 6, 7, 8, 9]
 

๊ตฌํ˜„ํ• ๋•Œ ๋จธ๋ฆฌ๋กœ๋Š” ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ง€์ง€๋งŒ ์ด๋ฅผ ์ปดํ“จํ„ฐ ๊ธฐ๋ฐ˜, ์ฝ”๋”ฉ ๊ธฐ๋ฐ˜์œผ๋กœ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ถ€๋ถ„์— ์–ด๋ ค์›€์ด ์žˆ๋‹ค. ์ด๋Š” ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์„ ์ ‘ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๊ธฐ์— ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๋ฉด์„œ ๋งŽ์€ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์—ฌ์•ผ ํ•œ๋‹ค ๋Š๋‚€๋‹ค.

728x90
Comments