728x90
"어서와! 자료구조와 알고리즘은 처음이지?" 강의의 정렬된 리스트에 원소 삽입 문제를 풀고 고치는 과정을 기록합니다.
def solution(L, x):
cnt = 0
for i in range(len(L)):
if L[i] > x:
L.insert(i, x)
cnt+=1
break
if cnt == 0:
L.append(x)
return L
제 처음 코드입니다. x값을 넣지 못하면 마지막에 값이 들어가게 한다는 그런 코드를 짰습니다.
근데 이렇게 보다는 맨 마지막의 값이 x보다 작다면 맨 뒤에 넣어주고, 그렇지 않다면 for문을 돌면서 x보다 더 큰 값의 자리에 넣어줘서 정렬을 하는 방법이 나을 것 같다고 생각했습니다.
def solution(L, x):
if x > L[-1]:
L.append(x)
else:
for i in range(len(L)):
if L[i] >= x:
L.insert(i, x)
break
return L
그래서 이렇게 바꿨습니다!
다른 사람의 풀이에서 어떤 사람이 x가 들어갈 위치를 리스트의 길이만큼 돌면서 x보다 작을때마다 idx를 증가시키고 커지면 break해서 idx의 자리에 x를 넣는 방법을 보았는데 그 방법으로도 해보았습니다.
def solution(L, x):
idx = 0
for i in range(len(L)):
if L[i] <= x:
idx+=1
else: break
L.insert(idx, x)
return L
"나는 꾸준함을 잃지 않는다."
'무작정 따라해보기(정리, 문제풀기) > 어서와! 자료구조와 알고리즘은 처음이지?' 카테고리의 다른 글
선형탐색, 이진탐색(python) (0) | 2021.08.31 |
---|---|
정렬(python) (0) | 2021.08.31 |
이진탐색(python 코드) (0) | 2021.08.31 |
리스트에서 원소 찾아내기(python 코드) (0) | 2021.08.29 |