본문 바로가기
CS/알고리즘

[이코테] 정렬 - 위에서 아래로

by 데브겸 2023. 2. 8.

1. 내 풀이

문제가 워낙 쉬워서 그런지 바로 맞췄다.... 는 출력 조건 못지킴

리스트 형태가 아니라 원소들을 직접 출력했어야 했는데 못했다

n = int(input())
data = []

for i in range(n):
    data.append(int(input()))

print(sorted(data, reverse=True))

 

1-1. 풀이 도중 생각

1) 음??? 너무 쉬운데?? 심지어 문제 조건도 널널해서 (n<=500) 아무 정렬이나 써도 될 것 같은데

2) sorted는 오름차순 정렬인데... 내림차순 어떻게 하더라;;

 

2. 정답

# 내장 함수 사용
n = int(input())
data = []

for i in range(n):
    data.append(int(input()))

data = sorted(data, reverse=True))

for i in data:
	print(i, end=' ')
    

# 삽입 정렬
n = int(input())
data = []

for i in range(n):
  data.append(int(input()))

for j in range(1, len(data)):
  for k in range(j, 0, -1):
    if data[k] < data[k-1]:
      data[k] , data[k-1] = data[k-1], data[k]
    else:
      break

for i in data:
	print(i, end=' ')

 

3. 새로 알게 된 것 or 새삼 깨닫게 된 것

1) .reverse()를 써서 출력이 None이 계속 나왔음. reverse()는 리스트 값을 반환하지 않고 바로 변환해버리므로 print(data.reverse()) 는 None이 나오는 것. 참고 글 (https://velog.io/@code_angler/Python%ED%8C%8C%EC%9D%B4%EC%8D%AC-reverse-%EC%99%80-reversed%EC%9D%98-%EC%B0%A8%EC%9D%B4-and-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%ED%8A%9C%ED%94%8C%EC%9D%84-%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0by.-join)