https://www.acmicpc.net/problem/10867
문제풀이
set을 이용해 중복을 삭제하고 오름차순으로 정렬 후 출력하면 되는 간단한 문제였다.
하지만 이 글을 작성하게된 이유는 문자열 정렬에 대한 실수를 공유하기 위해서이다.
처음에는 간단히 join으로 출력해야지~ 생각하고 string으로 입력을 받아 처리했다
n = int(input())
a = set(map(str,input().split()))
print(' '.join(sorted(list(a))))
하지만, 백준은 몇초 내로 틀렸다고 빨간불을 띄워줬다.
곰곰히 생각해본 결과 string으로 숫자를 입력해 정렬하게 되면
['1', '5', '10'] 의 경우
['1', '10' ,'5'] 로 정렬되게 된다. 10에 들어있는 1이 5보다 먼저 나오기 때문이다.
따라서 int로 입력받아 for문을 통해 출력하니 정답이었다.
n = int(input())
a = set(map(int,input().split()))
for i in sorted(list(a)):
print(i,end=' ')
'Koala - 9기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] #1350 진짜 공간 (0) | 2023.01.14 |
---|---|
[백준/python] 1350 진짜 공간 (0) | 2023.01.13 |
[백준/Python] 2511번 카드놀이 (0) | 2023.01.11 |
[백준/Python] 2576번: 홀수 (0) | 2023.01.11 |
[백준/C++]2822 점수계산 (0) | 2023.01.11 |