Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 재귀
- C#
- Unreal Engine 5
- 오류
- w3school
- 파이썬
- 문제풀이
- Unity
- Basic
- 기초
- DP
- Algorithm
- c++
- guide
- python
- UE5
- 백준
- Material
- 시작해요 언리얼 2022
- Programming
- Class
- Tutorial
- github
- String
- dfs
- 프로그래밍
- loop
- dynamic
- parameter
- W3Schools
Archives
- Today
- Total
행복한 개구리
백준 22.01.27. 18870번 - 좌표 압축 본문
↓틀린코드
더보기
import sys
N = int(sys.stdin.readline())
coord = list(map(int, sys.stdin.readline().split()))
idx = sorted(list(set(coord)))
result = []
for i in range(len(coord)):
for j in range(len(idx)):
if coord[i] == idx[j]:
result.append(idx.index(idx[j]))
for i in result:
sys.stdout.write(str(i) + " ")
sys를 활용하여 시간을 조금이나마 확보하였습니다.
그리고 세가지 리스트를 활용하여 coord의 요소 값이 idx에서 몇 인덱스값을 가지는지 result에 순서대로 저장하여 출력했습니다.
값은 알맞게 나왔지만 시간초과입니다.
N = int(input())
coord = list(map(int, input().split()))
idx = sorted(list(set(coord)))
dic = {idx[i]: i for i in range(len(idx))}
for i in coord:
print(dic[i], end=" ")
- sys를 쓰지 않아도 됩니다.
- dictionary의 특성을 이용하여 해결합니다.
- 우선 값을 저장할 coord리스트와 coord리스트를 반복되는 요소없이 정렬했을 때 어떤 인덱스를 가지는지 알기 위한 idx리스트를 만들어줍니다.
- dic의 요소를 idx에서 구한 인덱스[i]일 때 coord에서는 무슨 값을 가지는지 알 수 있도록 만들어줍니다.
딕셔너리의 값 - 마지막으로 coord값을 딕셔너리의 키로 할당해주면 해당 키에 맞는 인덱스값이 출력됩니다.
'Algorithm > BaekJoon' 카테고리의 다른 글
백준 22.01.28. 15650번 - N과 M (2) (0) | 2022.01.28 |
---|---|
백준 22.01.27. 15649번 - N과 M (1) (0) | 2022.01.27 |
백준 22.01.27. 10814번 - 나이순 정렬 (0) | 2022.01.27 |
백준 22.01.27. 1181번 - 단어 정렬 (0) | 2022.01.27 |
백준 22.01.27. 11651번 - 좌표 정렬하기 2 (0) | 2022.01.27 |