import random
for i in range(1, 10+1):
pick1 = random.randrange(10)
temp = numbers[pick1]
pick2 = random.randrange(10)
if pick1 == pick2:
i -= 1
continue
numbers[pick1] = numbers[pick2]
numbers[pick2] = temp
print(f"{i}회: {numbers}")
print(f"\t[{pick1}]번과 [{pick2}]번이 교환되었습니다\n")
print(f"\n수행결과: {numbers}")
>>
1회: [6, 7, 4, 3, 8, 2, 0, 5, 9, 1]
[0]번과 [4]번이 교환되었습니다
2회: [7, 6, 4, 3, 8, 2, 0, 5, 9, 1]
[0]번과 [1]번이 교환되었습니다
4회: [7, 6, 4, 0, 8, 2, 3, 5, 9, 1]
[6]번과 [3]번이 교환되었습니다
5회: [7, 5, 4, 0, 8, 2, 3, 6, 9, 1]
[7]번과 [1]번이 교환되었습니다
6회: [7, 5, 4, 0, 8, 6, 3, 2, 9, 1]
[5]번과 [7]번이 교환되었습니다
8회: [7, 5, 4, 0, 8, 2, 3, 6, 9, 1]
[5]번과 [7]번이 교환되었습니다
9회: [7, 1, 4, 0, 8, 2, 3, 6, 9, 5]
[9]번과 [1]번이 교환되었습니다
10회: [7, 1, 4, 0, 8, 9, 3, 6, 2, 5]
[8]번과 [5]번이 교환되었습니다
수행결과: [7, 1, 4, 0, 8, 9, 3, 6, 2, 5]
random
모듈을 사용하여 난수를 생성한다인덱스
로 삼는다교환 로직
을 사용한다반복문
을 사용하여 로직을 반복한다for i in range(len(numbers)-1):
for j in range(i+1, len(numbers)):
# 내림차순은 아래의 부등호 방향을 반대로
if numbers[i]<numbers[j]:
continue
temp = numbers[i]
numbers[i] = numbers[j]
numbers[j] = temp
print(numbers)
>>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
반목문
을 사용한다for
문을 사용교환 로직
을 통해 교환한다편리한 built-in 함수
가 많지만 어디까지나 Python 한정
베이스가 되는 알고리즘을 스스로 짤 수 있어야 한다
이를 이해하지 못한다면 결국 객체를 조립하는 것도 한계가 있다
필수 알고리즘은 반드시 이해할 것