본문 바로가기

알고리즘

[이것이 코딩테스트다] 정렬 - 문제

728x90

1. 위에서 아래로

나의코드

n=int(input())

nums=[]
for i in range(n):
  nums.append(int(input()))

result=sorted(nums, reverse=True)
print(result)

단순 정렬문제로 쉽게 해결 되었다.

 

2. 성적이 낮은 순서로 학생 출력하기

나의코드

n=int(input())

people=[]
for i in range(n):
    p,score=input().split()
    people.append((p,score))

result=sorted(people, key=lambda x: x[1])

for person in people:
    print(person[0],end=' ')

해당 문제도 key를 통해 정렬 기준을 설정해서 정렬하면 쉽게 해결이 가능한 문제였다.

 

3. 두 배열의 원소 교체

나의코드

n,k=map(int,input().split())
a=list(map(int,input().split()))
b=list(map(int,input().split()))

a.sort()
b.sort(reverse=True)

for i in range(k):
  if a[i] < b[i]:
    a[i],b[i] = b[i], a[i]
  else:
    break

print(sum(a))

 

반응형