[1427] 소트인사이드

해결 포인트

내림차순 정렬은 reverse = True를 사용하면 된다.

답안

a = list((input()))
b = []
a.sort(reverse=True)
for i in a:
    print(i,end="")

 

[11650] 좌표 정렬하기

해결 포인트

좌표 두개를 공백을 하나로 나누어 리스트x에 받으며 추가시킨다.

그럼 0,2,4,... 인덱스는 x

1,3,5,... 인덱스는 y가 된다.

기본 정렬만 시킨뒤 출력문 부분만 신경쓰면 된다.

답안

t = int(input())
x = []
for i in range(t):
    x.append(list(map(int,input().split())))
x.sort()
for j in range(len(x)):
    print(x[j][0],x[j][1])

[11651] 좌표 정렬하기 2

해결 포인트

이번 문제는 x가 아닌 y값을 기준으로 정렬해준다.

이와 관련된 sort함수 관련 문법을 알아보자

 

답안

t = int(input())
x = []
for i in range(t):
    x.append(list(map(int,input().split())))
x.sort(key=lambda x:(x[1],x[0]))
for j in range(len(x)):
    print(x[j][0],x[j][1])

sort 함수 안 문법을 익혀두자...

[1181] 단어 정렬

해결 포인트

데이터를 받는건 이전 문제들과 똑같다.

이후 우선 중복값을 제거 해주고 문제에서 요구하는 정렬을 하면된다.

답안

t = int(input())
x = []
x_n = []
for i in range(t):
    x.append((input()))

for k in x:
    if k not in x_n:
        x_n.append(k)

x_n.sort()
x_n.sort(key=len)

for j in x_n:
    print(j)

두번째 for문은 중복된 값을 제거하기 위함이다.

key = len는 길이에 따른 오름차순으로 정렬하게된다.

[10814] 나이순 정렬

해결 포인트

출력 잘되는데.... 자꾸 틀렸다고 나왔다....

문제점은 숫자와 문자형을 따로 구분해줘야한다는 점이다.

공백을 기준으로 데이터를 나눠 받은다음

리스트에 추가해줄땐 숫자는 int 시켜주자

답안

import operator
import sys
input = sys.stdin.readline()
t = int(input)
x = []
for i in range(t):
    age, name = sys.stdin.readline().split()
    x.append((int(age), name))
x.sort(key=lambda tag:tag[0])
for j in range(len(x)):
    print(x[j][0],x[j][1])

 

+ Recent posts