//
728x90
반응형

BOJ 1427 소트인사이드

문제

배열을 정렬하는 것은 쉽다. 

수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.

시간 제한 : 2 초
메모리 제한 : 128 MB

입력

첫째 줄에 정렬하려고 하는 수 N이 주어진다. 

N은 1,000,000,000보다 작거나 같은 자연수이다.

시간 제한 : 2 초 
메모리 제한 : 128 MB

출력

첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.

예제 입력 1

2143

예제 출력 1

4321

예제 입력 2

999998999

예제 출력 2

999999998

예제 입력 3

61423

예제 출력 3

64321

예제 입력 4

500613009

예제 출력 4

965310000

풀이

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

arr.sort(reverse=True)

for j in arr :
    print(j, end='')
728x90
반응형
728x90
반응형

BOJ 1181 단어 정렬

문제

알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.

길이가 짧은 것부터
길이가 같으면 사전 순으로

시간 제한 : 2 초
메모리 제한 : 256 MB

입력

첫째 줄에 단어의 개수 N이 주어진다. 

(1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 

주어지는 문자열의 길이는 50을 넘지 않는다.

출력

조건에 따라 정렬하여 단어들을 출력한다. 

단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다.

예제 입력 1

13
but
i
wont
hesitate
no
more
no
more
it
cannot
wait
im
yours

예제 출력 1

i
im
it
no
but
more
wait
wont
yours
cannot
hesitate

풀이

import sys

input = sys.stdin.readline
n = int(input())
arr = []

for _ in range(n) : 
    word = input().strip()
    cnt = len(word)
    arr.append((cnt, word))

set_arr = list(set(arr))

set_arr.sort(key = lambda words : (words[0], words[1]))

for i in set_arr :
    print(i[1])
728x90
반응형
728x90
반응형

BOJ 2751 수 정렬하기 2

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

시간 제한 : 2 초
메모리 제한 : 256 MB

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 

둘째 줄부터 N개의 줄에는 수가 주어진다. 

이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1

5
5
4
3
2
1

예제 출력 1

1
2
3
4
5

풀이

import sys

input = sys.stdin.readline
n = int(input())
arr = []
for i in range(n) :
    arr.append(int(input()))

arr.sort()

for j in arr :
    print(j)
728x90
반응형
728x90
반응형

BOJ 2750 수 정렬하기

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

시간 제한 : 1 초
메모리 제한 : 128 MB

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 

둘째 줄부터 N개의 줄에는 수 주어진다. 

이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1 

5
5
2
3
4
1

예제 출력 1

1
2
3
4
5

풀이

n = int(input())
arr = []

for i in range(n) :
    arr.append(int(input()))

arr.sort()

for j in arr :
    print(j)
728x90
반응형

+ Recent posts