💡 코드 작성 전 설명
1. 어린 아이가 공을 치우려고한다.
2. 널브러져 있는 공을 하나씩 가져온다.
3. 크기가 작으면 앞에 놓고, 크면 뒤에 두려고 한다.
💡 실행 사진
💡 코드
어린 아이가 공을 치우려고한다.
공이 널브러져 있는 것과, 치우면서 공을 정렬하려는 공간이 있을 것 이다.
널브러져 있는 공을 하나씩 가져온다.
새로운 공은 new_ball 변수를 통해 받아온다.
정렬하려는 공간 ( sorted_ball_list ) 에 공이 하나도 없을 경우, 맨 앞에 둔다.
from hashlib import new
def main():
n = int(input("몇 개의 공이 있나요 ? :: "))
print ("-"*30)
ball_list = []
sorted_ball_list = []
size = 0
while True:
ball_number = int(input("공 숫자 입력 :: "))
ball_list.append(ball_number)
size = len(ball_list)
if (size == n):
print(ball_list)
for ball in range(size):
new_ball = ball_list[ball]
if (len(sorted_ball_list) == 0):
sorted_ball_list.append(new_ball)
else:
for ball in range(len(sorted_ball_list)):
previous_ball = sorted_ball_list[ball]
if (new_ball < previous_ball):
sorted_ball_list.insert(ball, new_ball)
break
else:
if new_ball == len(sorted_ball_list) - 1:
sorted_ball_list.append(new_ball)
continue
print(sorted_ball_list)
if __name__ == "__main__":
main()
크기가 작으면 앞에 놓고, 크면 뒤에 두려고 한다.
새로 가져온 공은 new_ball 이다.
새로 가져온 공이 놓여져 있는 공과 비교한다.
놓여져 있는 공은 previous_ball 이다. ( sorted (ball) ) n 번째 놓여져 있는 공
공의 크기를 비교하여 새로운 공이, 이전 공보다 작으면 insert 함수로 놓고 끝난다.
그 후 새로운 공을 가져오기 위해 break 를 한다.
insert 는 (i, x) 형태로 사용한다.
array의 원하는 위치 i 앞에 추가할 값 x를 삽입할 수 있다.
nums = [1, 2, 3]
nums.insert(0, [10, 20]) # 0번째(맨앞에) 추가
[[10, 20], 1, 2, 3]
nums.insert(-1, 100) # 끝에서 1번째 전에 추가
print(nums)
[[10, 20], 1, 2, 100, 3] # 리스트 맨 끝에 저장되지 않음
# 맨 마지막에 요소를 추가하는 경우
nums = [1, 2, 3]
nums.insert(len(nums), 100)
[1, 2, 3, 100]
[Python 유클리드 호제법] 최대 공약수, 최대 공배수 구하기 (0) | 2022.02.11 |
---|---|
[Python 재귀 알고리즘] 팩토리얼 구하기 (0) | 2022.02.11 |
[Python 일기장 만들기 (2)] Python Firebase 연동하기 (0) | 2021.12.24 |
[Python 일기장 만들기 (1)] Firebase 프로젝트 만들기 (0) | 2021.12.24 |
[Python 문자열을 Datetime]으로 변경하기 (0) | 2021.11.16 |