티스토리 뷰
https://www.acmicpc.net/problem/1015
하.. 문제를 이해하는게 어려웠다... (글을 많이 읽자...)
그래서 B가 오름차순이라는건지~ 내림차순이라는건지~ 헷갈렸다 ㅎㅎ...
결론부터 말하자면!! A를 정렬하는 문제이다!
인덱스와 값에 모두 접근하기 위해 딕셔너리를 사용했는데 굳이? 사용해야 하나 싶긴 하다.
A가 중복이 가능하기 때문에 방문처리도 해줘야 한다.
따라서 visited 배열을 선언하였다.
cnt 변수를 두어 A가 몇번째로 작은지 P에 저장하였다!
# 수열 정렬
import sys
input = sys.stdin.readline
# B[P[i]] = A[i]
# B: A를 오름차순으로 정렬한 것
# P: A가 몇번째로 작은지를 나타내는 것
N = int(input())
A = list(map(int, input().split()))
B = sorted(A)
P = [0 for _ in range(N)]
visited = [False for _ in range(N)]
dic = {}
for i in range(N):
dic[i] = A[i]
cnt = 0
for i in range(N):
x = B[i]
for j in dic.items(): # j = (idx, value)
if j[1] == x and visited[j[0]] == False:
P[j[0]] = cnt
cnt += 1
visited[j[0]] = True
print(*P)
'PS > BOJ Python' 카테고리의 다른 글
2839번 - 설탕 배달 (0) | 2023.04.01 |
---|---|
1358번 - 하키 (0) | 2023.03.31 |
10815번 - 숫자 카드 (0) | 2023.03.29 |
17478번 - 재귀함수가 뭔가요? (0) | 2023.03.28 |
1182번 - 부분수열의 합 (0) | 2023.03.25 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 삼성청년소프트웨어아카데미
- 브루트포스
- 10816
- 1715
- 프로그래머스
- 빌림
- 10815
- 1764
- 조합
- 11051
- 1759
- 수학
- 파이썬
- 백준
- 10971
- 덱
- 1182
- 10845
- 17478
- 2805
- dp
- 큐
- 싸피
- 딕셔너리
- 스택
- 러스트
- 1358
- 백트래킹
- 자료구조
- heapq
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함