파이썬 백준 10814번
실버5
https://www.acmicpc.net/problem/10814
문제 보기
분류: 정렬
문제 풀기
string 으로 입력받은 값을 정렬하면서 실수하지 않는 것이 중요한것 같다.
예) 9, 10 의 경우. str 타입이면 1이 우선시 되어 10 - 9 로 정렬됨.
fnInputMember(N): 으로 모든 값을 str type 2차원 배열로 입력을 받는고 그 결과를 return 해 준다.
def fnInputMember(N):
member_ls = []
for _ in range(N):
person = list(map(str, inputdata().split()))
member_ls.append(person)
return member_ls
fnSortByAge(member_ls): 으로 나이순으로 정렬하되 key 를 이용해서 나이인 x[0] 위치로만 정렬, 이때, 나이는 숫자로 바꾸어줘햐 하기에 int(x[0]) 로 변환하여 정렬한다.
def fnSortByAge(member_ls):
sorted_ls = sorted(member_ls, key = lambda x: int(x[0]))
return sorted_ls
코드 보기
import sys
inputdata = sys.stdin.readline
def fnInputMember(N):
member_ls = []
for _ in range(N):
person = list(map(str, inputdata().split()))
member_ls.append(person)
return member_ls
def fnSortByAge(member_ls):
sorted_ls = sorted(member_ls, key = lambda x: int(x[0]))
return sorted_ls
if __name__ == "__main__":
N = int(inputdata().strip())
member_ls = fnInputMember(N)
print(member_ls) # test print
sorted_ls = fnSortByAge(member_ls)
print(sorted_ls) # test print
for srt in sorted_ls:
print(" ".join(srt))
# 5
# 21 Junkyu
# 21 Dohyun
# 20 Sunyoung
# 100 Acmicpc
# 9 Backjoon
# [['21', 'Junkyu'], ['21', 'Dohyun'], ['20', 'Sunyoung'], ['100', 'Acmicpc'], ['9', 'Backjoon']]
# [['9', 'Backjoon'], ['20', 'Sunyoung'], ['21', 'Junkyu'], ['21', 'Dohyun'], ['100', 'Acmicpc']]
# 9 Backjoon
# 20 Sunyoung
# 21 Junkyu
# 21 Dohyun
# 100 Acmicpc
'공부하기 > 백준' 카테고리의 다른 글
[Python] 백준 풀기 1654 - 랜선 자르기 (0) | 2022.10.31 |
---|---|
[Python] 백준 풀기 8958 - OX퀴즈 (0) | 2022.10.30 |
[Python] 백준 풀기 2675 - 문자열 반복 (0) | 2022.10.28 |
[Python] 백준 풀기 11651 - 좌표 정렬하기 2 (0) | 2022.10.27 |
[Python] 백준 풀기 3053 - 택시 기하학 (0) | 2022.10.26 |