https://www.acmicpc.net/problem/2750
n = int(input())
n_lst=[]
for _ in range(n):
n_lst.append(int(input()))
n_lst.sort()
for i in n_lst:
print(i)
- 미리 오름차순으로 정렬해놓은 리스트를 for문을 돌면서 출력하면 됨
https://www.acmicpc.net/problem/2751
import sys
n = int(input())
n_lst=[]
for _ in range(n):
n_lst.append(int(sys.stdin.readline()))#1
n_lst.sort()
for i in n_lst:
sys.stdout.write(str(i)+'\n')#2
📌.input대신 사용한 함수에 대해서 자세히 정확히 정리해주셨습니다.!
#1. input대신 sys.stdin.readline으로 입력받기.
#2. str을 써주는 이유도 위의 페이지에서 정확하게 설명해주셨습니다. 꼭 읽고 넘어가주세요 모르시면!
https://www.acmicpc.net/problem/10989
import sys
N = int(input())
check_list = [0] * 10001
for i in range(N):
input_num = int(sys.stdin.readline())
check_list[input_num] = check_list[input_num] + 1
for i in range(10001):
if check_list[i] != 0:
for j in range(check_list[i]):
print(i)
https://www.acmicpc.net/problem/2108
패키지가 없다해서.. 파이썬 패키지까지 다운받아가며 문제를 풀었다.
import sys #1. input을 썼을 때 시간초과 막기위함
from collections import Counter
n = int(sys.stdin.readline())
lst = []
for i in range(n):
lst.append(int(sys.stdin.readline()))
lst.sort()
lst_n = Counter(lst).most_common()#3. 최빈값을 알기 위해서.
#print(lst_n) #[(값, 몇개인지),(값, 몇개인지),(값, 몇개인지),(값, 몇개인지)...]
print(round(sum(lst) / n)) #4. 평균값
print(lst[n // 2]) #5. 중간값
if len(lst_n) > 1:
if lst_n[0][1] == lst_n[1][1]: #[(0 , 0), (0 , 1), (... , ...), (... , ....)]
print(lst_n[1][0]) #최빈값을 출력한다. (여러 개 있을 때에는 최빈값 중 두 번째로 작은 값을 출력한다.라는 조건을 만족하기 위함)
else:
print(lst_n[0][0])
#[0][1] / [1][1] : 리스트의 숫자를 세어 놓은 몇개인지.
#[0][0]/ [1][0] :리스트에 넣은 값(실제 값.)
else:
print(lst_n[0][0]) #리스트에 값이 하나만 들었을 땐 lst[0]을 출력해준다.
print(lst[-1] - lst[0]) #범위 [-1]은 맨 마지막 요소 / [0]은 맨 처음 요소 젤 큰 값 - 작은 값 = 범위
- 결국 위의 패키지를 쓰지 않고 풀었다.
- 시간초과를 막기 위해서는 input대신 sys...를 써준다.
- 혹시라도 이해가 안 되는 분들이나, 나중에 또 이해를 못할 나를 위해서.. 친절하게 풀어놨다. 문제와 상관 없이 내가 임의로 넣은 숫자들임!
- 최빈값을 구할 때 [0][1]과 [1][1]만 비교하는 이유는 여러개 입력받은 값이 있을 때 두번째로 작은 수를 출력하기 위해서는 [2][1]부턴 필요하지가 않기 때문이다.
- [입력받은 값][값이 몇개인지]
https://www.acmicpc.net/problem/1427
<오답>
#1427
n = list(input())
n.sort()
for i in range(1,len(n)):
print(i, end='')
- 내림차순을 올림차순으로 정렬해서 틀림 ㅋㅋ ..
<정답>
#1427
n = list(input())
n.sort(reverse=True) #내림차순을 위한 함수 사용.
for i in n:
print(i,end='')
https://www.acmicpc.net/problem/11650
import sys
n = int(sys.stdin.readline())
xy_lst = []
for i in range(n):
xy_lst.append(list(map(int, sys.stdin.readline().split())))
xy_lst.sort(key=lambda x:(x[0],x[1]))
for i in xy_lst:
print(i[0],i[1])
https://www.acmicpc.net/problem/1181
n = int(input())
lst = []
for _ in range(n):
lst.append(input())
set_lst=set(lst) #중복제거
lst = list(set_lst) #lst에 다시 대입(중복제거한 리스트를)
lst.sort() #알파벳순서대로 정렬
lst.sort(key=len) #알파벳 순서대로 정렬한 리스트들 다시 길이를 기준으로 정렬
for i in lst:
print(i)
import sys
n = int(sys.stdin.readline())
lst = []
for _ in range(n):
lst.append(sys.stdin.readline().strip())
set_lst=set(lst)
lst = list(set_lst)
lst.sort()
lst.sort(key=len)
for i in lst:
print(i)
https://www.acmicpc.net/problem/10814
<오답>
import sys
n = int(sys.stdin.readline())
lst = []
for _ in range(n):
lst.append(list(map(str,sys.stdin.readline().split())))
lst.sort(key=lambda x:(x[0],x[1]))
for i in range(len(lst)):
for j in range(0,1):
print(lst[i][j],lst[i][j+1])
3
21 Junkyu
21 Dohyun
20 Sunyoung
20 Sunyoung
21 Dohyun
21 Junkyu
>>> lst
[['20', 'Sunyoung'], ['21', 'Dohyun'], ['21', 'Junkyu']]
- 정렬 기준을 잘못 잡아서 틀림
import sys
n = int(sys.stdin.readline())
lst = []
for _ in range(n):
lst.append(list(map(str,sys.stdin.readline().split())))
lst.sort(key=lambda x:(x[0]))
for i in range(len(lst)):
for j in range(0,1):
print(lst[i][j],lst[i][j+1])
- IDLE에선 정확하게 답이 나왔는데 틀렸다고 나온다 ㅎ ...
<정답>
n = int(input())
lst = []
for _ in range(n):
lst.append(list(map(str,input().split())))
lst.sort(key=lambda x:int(x[0]))
for i in range(n):
print(lst[i][0],lst[i][1])
import sys
n = int(sys.stdin.readline())
lst = []
for _ in range(n):
lst.append(list(map(str,sys.stdin.readline().split())))
lst.sort(key=lambda x:int(x[0])) #이때 데이터타입을 int로 꼭 지정해줘야 틀렸다고 안 나온다 ㅎ
for i in range(n):
print(lst[i][0],lst[i][1]) #[i][0] / [i][1] i는 계속해서 늘어나야하고 0(나이) 1(이름)으로 고정시켜 주며 for 문으로 출력해준다.
- 기준을 잡는 것이 나이뿐이기 때문에 x[0]만 기준으로 잡아주면 된다. 위의 문제는 x값이 같을 때 y값을 기준으로 하기때문에 두개의 기준을 다 넣어주는데 이 경우엔 나이만 고려하고 나이가 같을 땐 등록 순으로 하기 때문에 그대로 넣어주면 된다.
https://www.acmicpc.net/problem/18870
n = int(input())
lst = list(map(int,input().split()))
n_lst=list(sorted(set(lst))) #중복을 제거하면서 정렬해줌
n_lst = {n_lst[i]:i for i in range(len(n_lst))} #인덱스값이 답이기 때문
for i in lst:
print(n_lst[i], end=" ") #인덱스 값을 출력해준다.