반응형
백준 10814번 풀이
문제풀러가기
https://www.acmicpc.net/problem/10814
문제
풀이
1. 나이는 int 형으로 출력!!
*나이를 str로 출력하면 아무리 맞았어도 틀렸습니다가 뜹니다.
2. 리스트 정렬 sort사용 or lambda 사용
코드 1
import sys
N=int(sys.stdin.readline())
arr=[]
for i in range (N):
a,b = map(str,sys.stdin.readline().split())
arr.append([int(a), i, b])
#i추가 이유는 입력 받은 순서대로 정렬하기 위해
arr.sort()
for i in range (len(arr)):
print("%d %s"%(arr[i][0], arr[i][2]))
코드 2
import sys
N=int(sys.stdin.readline())
arr=[]
for i in range (N):
a,b = map(str,sys.stdin.readline().split())
arr.append([int(a), b])
arr.sort(key=lambda x:x[0])
for i in arr:
print(*i, sep=" ") #*i는 리스트 형식 없애줌
1번 코드 풀이
위 코드에서 arr.append([int(a), i ,b])의 i를 넣지 않을 시,
나이가 정렬된 후, 뒤에 이름 알파벳이 정렬되기 때문에, 입력 순서대로의 정렬을 위해서 i를 추가해줌.
2번 코드 풀이
arr.sort(key=lambda x:x[0])에서 arr[i][0]번째 위치 순으로 정렬
=> sorted(arr, key=lambda x:x[0])으로 대체 가능
예제1
arr = [(1,3), (5,2), (2,3), (10,6), (-3, 2), (5,1), (10,4), (10, -3)]
arr.sort(key=lambda x:x[0])
print(arr)
#결과: [(-3, 2), (1, 3), (2, 3), (5, 2), (5, 1), (10, 6), (10, 4), (10, -3)]
예제2
arr = [(1,3), (5,2), (2,3), (10,6), (-3, 2), (5,1), (10,4), (10, -3)]
arr.sort(key=lambda x:x[1])
print(arr)
#결과: [(10, -3), (5, 1), (5, 2), (-3, 2), (1, 3), (2, 3), (10, 4), (10, 6)]
반응형
'코딩테스트 > 코딩테스트 문제' 카테고리의 다른 글
코딩테스트 준비 - 백준15649번 N과 M (1)풀이-DFS에 관해서(파이썬) (0) | 2021.06.08 |
---|---|
코딩테스트 준비 - 백준18870번 좌표압축 풀이:파이썬 딕셔너리 활용 (파이썬) (0) | 2021.06.07 |
코딩테스트 준비 - 백준1181번 단어 정렬 풀이: 파이썬 문자열 정렬(파이썬) (0) | 2021.06.05 |
코딩테스트 준비 - 백준11651번 좌표 정렬하기 풀이(간단한 풀이)(파이썬) (0) | 2021.06.04 |
코딩테스트 준비 - 백준11650번 좌표 정렬하기 풀이(간단한 풀이):파이썬 튜플 괄호 없애기 (파이썬) (0) | 2021.06.03 |
댓글