Notice
Recent Posts
Recent Comments
Link
컴퓨터는 잘못이 없다..
[알고리즘]정렬_성적이 낮은 순서로 학생 출력하기(파이썬 sort(),sorted()의 key매개변수, 람다함수 사용해보기) 본문
공부/알고리즘(파이썬)
[알고리즘]정렬_성적이 낮은 순서로 학생 출력하기(파이썬 sort(),sorted()의 key매개변수, 람다함수 사용해보기)
도토리까꿍v 2021. 1. 15. 21:33
Contents
접기
['성적이 낮은 순서로 학생 출력하기' 문제 설명]
-난이도 : ★☆☆
-풀이시간 : 20분
-시간 제한 : 1초
-메모리 제한 : 128MB
-기출 : D기업 프로그래밍 콘테스트 예선
-출처 : 이것이 코테다(p.180)
-문제 :
N명의 학생 정보가 있다. 학생 정보는 학생의 이름과 학생의 성적으로 구분된다.
각 학생의 이름과 성적 정보가 주어졌을 때 성적이 낮은 순서대로 학생의 이름을 출력하는 프로그램을 작성하시오.
-입력조건:
첫 번째 줄에 학생의 수 N이 입력된다. (1<=N<=100,000)
두 번째 줄부터 N+1번째 줄에는 학생의 이름을 나타내는 문자열 A와 학생의 성적을 나타내는 정수 B가
공백으로 구분되어 입력된다. 문자열 A의 길이와 학생의 성적은 100이하의 자연수이다.
-출력조건:
모든 학생의 이름을 성적이 낮은 순서대로 출력한다. 성적이 동일한 학생들의 순서는 자유롭게 출력해도 괜찮다.
-입력예시1
2
홍길동 95
이순신 77
-출력예시1
이순신 홍길동
['성적이 낮은 순서로 학생 출력하기' 답안1]
n=int(input())
#[(),(),()..] 이렇게 입력받을 수 있다.
arr=[]
for i in range(n) :
data = input().split()
arr.append((data[0], int(data[1])))
#arr내 튜블의 index 1번째 있는 요소로 오름차순 정렬 해준다.
arr = sorted(arr, key=lambda student:student[1])
#정렬이 수행된 결과를 출력한다.
for i in arr :
print(i[0],end=' ')
▲답안1 설명
람다함수를 이용하여 풀어보았다.
['성적이 낮은 순서로 학생 출력하기' 답안2]
n=int(input())
#[(),(),()..] 이렇게 입력받을 수 있다.
arr=[]
for i in range(n) :
data = input().split()
arr.append((data[0], int(data[1])))
#setting함수
def setting(data) :
return data[1]
#arr내 튜블의 index 1번째 있는 요소로 오름차순 정렬 해준다.
arr = sorted(arr, key=setting)
#정렬이 수행된 결과를 출력한다.
for i in arr :
print(i[0], end=' ')
▲답안2 설명
람다함수를 쓰지 않고 풀어보았다.
[파이썬]
-sorted(), sort()의 key매개변수 와 람다함수 사용하기
sorted()나 sort()를 이용할 때는 key 매개변수를 입력받을 수 있다. key 값으로는 하나의 함수가 들어가야 하며 이는 정렬기준이 된다.
'공부 > 알고리즘(파이썬)' 카테고리의 다른 글
[알고리즘]BOJ_2750_수 정렬하기(파이썬 sorted() ) (0) | 2021.01.15 |
---|---|
[알고리즘]정렬_위에서아래로(파이썬 sorted()) (0) | 2021.01.15 |
[알고리즘]BFS/DFS_미로 탈출(파이썬 deque사용/stack과 queue차이) (0) | 2020.12.30 |
Comments