728x90
문제를 이해하는데도 시간이 좀 걸린 것 같다.
파헤쳐보니 RANK를 매겨서 출력하면 될 것 같다.
같은 수가 있더라도 등수에 반영 안하는?,,
import sys
N=int(input())
numlist=sys.stdin.readline().split()
numset=list(set(numlist))
numset.sort()
for i in range(N):
print(numset.index(numlist[i]),end=' ')
시간초과...
list index가 시간이 엄청 걸리는 것 같다..
아무래도 다른 탐색 방법을 찾아야 할 것 같다.
import sys
N=int(input())
numlist=sys.stdin.readline().split()
ranklist=[0 for i in range(N)]
for i in range(N):
cnt=0
for j in range(N):
if numlist[i]>numlist[j]:
ranklist[i]+=1
print(ranklist,sep=' ')
또 시간초과...
import sys
N=int(input())
numlist=sys.stdin.readline().split()
numset=list(set(numlist))
numset.sort()
numdict={}
for i in range(len(numset)):
numdict[numset[i]]=i
for i in numlist:
sys.stdout.write(str(numdict[i])+' ')
그래서 딕셔너리를 활용해서 문제를 풀어봤다.
시간초과가 나길래 stdout으로 출력..
하지만 틀렸다고.. 대체 뭐가 문제..
import sys
N=int(input())
numlist=list(map(int,sys.stdin.readline().split()))
numset=sorted(list(set(numlist)))
numdict={numset[i]: i for i in range(len(numset))}
for i in numlist:
sys.stdout.write(str(numdict[i])+' ')
위 처럼 했더니 일단 맞았다.
입력값을 받을 때 int값으로 받아서 리스트로 처리 하지 않고
그냥 입력해서 문자열처럼 처리 되어서 그런건가..?
출력값은 어차피 똑같은데 sort도 되고..
굳이 int값으로 받아야만 정답처리가 되는건지.. 모르겠담
728x90
'Baekjoon Case' 카테고리의 다른 글
[백준 #15650] N과 M(2) - 파이썬(python) (0) | 2021.08.14 |
---|---|
[백준 #15649] N과 M(1) - 파이썬(python) (0) | 2021.08.13 |
[백준 #10814] 나이순 정렬 - 파이썬(python) (0) | 2021.08.13 |
[백준 #1181] 단어 정렬 - 파이썬(python) (0) | 2021.08.12 |
[백준 #11651] 좌표 정렬하기 2 - 파이썬(python) (0) | 2021.08.12 |