주어진 정수 배열에서 중복된 값을 제거하고, 남은 값을 오름차순으로 정렬하여 출력하는 프로그램을 작성한다. 배열의 크기는 0 이상 100 이하이다.
입력 예시
첫째 줄에 배열의 크기 N이 주어진다. 둘째 줄에 N개의 정수가 공백으로 구분되어 주어진다.
출력 예시
중복을 제거한 뒤 오름차순으로 정렬된 정수들을 공백으로 구분해 출력한다.
예제 테스트케이스
예제 1
입력 예시
출력 예시
6
4 5 6 5 4 3
3 4 5 6
예제 2
입력 예시
출력 예시
5
1 1 1 1 1
1
코드
N = int(input())
if N > 0:
arr = list(map(int, input().split()))
result = sorted(set(arr))
print(*result)
1. 코드 동작 설명
- 정수 N을 입력받는다.
- N이 0보다 큰 경우에만 배열을 입력받는다.
- 입력된 배열에서 set을 사용하여 중복을 제거한다.
- 중복이 제거된 값을 sorted로 오름차순 정렬한다.
- 결과를 공백으로 구분하여 출력한다.
2. 문법 설명
int()
int(input())
- 문자열을 정수형으로 변환하는 함수
- 사용 형태:
int(문자열)
map()
map(int, input().split())
- iterable의 각 요소에 함수를 적용하는 함수
- 사용 형태:
map(함수, iterable)
list()
list(map(int, input().split()))
- iterable을 리스트로 변환하는 함수
- 사용 형태:
list(iterable)
set()
set(arr)
- 중복된 값을 제거하는 자료형
- 사용 형태:
set(리스트)
sorted()
sorted(set(arr))
- 데이터를 오름차순으로 정렬하는 함수
- 사용 형태:
sorted(iterable)
print() 언패킹
print(*result)
- 리스트의 요소를 공백으로 구분하여 출력
- 사용 형태:
print(*리스트)
3. 실수 포인트 (핵심만)
N = 0인데 배열 입력 받는 경우
arr = list(map(int, input().split()))
- 입력 줄이 없어 EOFError 발생
set만 사용하고 정렬하지 않는 경우
result = set(arr)
- 순서가 보장되지 않아 오답
리스트 그대로 출력
print(result)
- [1, 2, 3] 형태로 출력되어 형식 오류
split() 괄호 누락
input().split # 잘못된 형태
- 함수가 실행되지 않아 오류 발생
4. 핵심 정리
- set으로 중복 제거 후 sorted로 정렬한다.
- 출력은 print(*리스트) 형태로 공백 구분해야 한다.
'Univ > Python Programming' 카테고리의 다른 글
| [문제 11] 배열에서 두 수의 곱 출력하기 - Python 풀이 (0) | 2026.04.15 |
|---|---|
| [문제 10] 숫자의 자릿수 합 구하기 - Python 풀이 (0) | 2026.04.15 |
| [문제 08]숫자의 합 구하기 - Python 풀이 (0) | 2026.04.15 |
| [문제 07] 배열에서 최대값과 최소값 찾기 - Python 풀이 (0) | 2026.04.15 |
| [백준-2444] 별 찍기 - 7 코드 개선 - Python 풀이 (4) | 2026.04.10 |