728x90
문제 링크: https://www.acmicpc.net/problem/18870
문제 풀이
set()과 딕셔너리로 풀었다. 먼저 집합으로 만들어서 중복된 숫자들을 지워주고 다시 리스트로 변환했다.
이후 다시 오름차순으로 정렬했는데, 꼭 정렬해줘야 한다. set()은 정렬을 고려하지 않기 때문에 정렬된 상태로 입력을 줘도 정렬이 안 되어 있을 수 있다. 어짜피 그렇게 안줄때도 있어서 하긴 해야한다.
이후 딕셔너리를 하나 만들어주고 반복문을 이용하여 차례대로 만들어준 리스트를 확인해줬다.
0부터 시작해서 가장 작은 숫자는 0, 그 다음은 1, 그 다음은 2, ... 가 출력되게 딕셔너리를 이용해주고, 다시 원래의 리스트로 돌아와서 반복문을 이용해 압축된 좌표로 바꿔주었다.
코드
여담
맞은 사람 중에 언어 그룹 Python에 들어가면 이 코드가 1등이다. 왜지?
사실 나도 이 문제 풀 당시에 잘 몰라서 검색해본거 같은데...
728x90
'BOJ' 카테고리의 다른 글
[BOJ][Python] 백준 2101번 - 플러그 (0) | 2021.09.22 |
---|---|
[BOJ][Python] 백준 2254번 - 감옥 건설 (0) | 2021.09.22 |
[BOJ][Python] 백준 14621번 - 나만 안되는 연애 (0) | 2021.09.21 |
[BOJ][Python] 백준 2903번 - 중앙 이동 알고리즘 (0) | 2021.09.21 |
[BOJ][Python] 백준 10822번 - 더하기 (0) | 2021.09.21 |