코드포스 풀이

코드포스 136A 풀이

ag2개발자 2022. 1. 29. 16:40
n = int(input())
arr = list(map(int, input().split()))
field= [0]*105
a=[]
for i,v in enumerate(arr):
    field[v]=i+1
for j in range(n):
    a.append(str(field[j+1]))
print(" ".join(a))

배열 [2 3 4 1]의 경우 인덱스를 역으로 참조하여 배열 [4 1 2 3]처럼 만드는 문제이다.

총 100개의 인덱스를 가질 수 있다고 문제에 언급돼 있으니, 넉넉히 105개짜리 field배열을

만들어준다. (역인덱스를 저장할 배열)

파이썬에는 enumerate기능이 있어 너무나 쉽게 i가 인덱스 v가 값이라면 v를 인덱스로,

i를 값으로 하는 역참조를 할 수 있다. 단, 숫자들이 가리키는 것은 인덱스보다 1큰 숫자임으로

값에다 1을 더해줘야한다. 마지막에 join함수는 리스트의 원소들을 "", "" 형태가 아닌 "" 형태로 묶어준다. 

'코드포스 풀이' 카테고리의 다른 글

코드포스 479A 풀이  (0) 2022.01.30
코드포스 122A 풀이  (0) 2022.01.30
코드포스 1352A 풀이  (0) 2022.01.29
코드포스 112A 풀이  (0) 2022.01.29
코드포스 58A 풀이  (0) 2022.01.29