문제
https://www.acmicpc.net/problem/1427
접근
데이터 크기: 10자리 문자열
시간 제한: 2초
데이터의 크기가 작기 때문에 선택정렬 사용
코드
N = list(input())
temp = 0
for j in range(len(N)):
max_val = -1
min_index = 0
for i in range(j, len(N)):
if int(N[i]) > max_val:
max_val = int(N[i])
max_index = i
temp = int(N[j])
N[j] = max_val
N[max_index] = temp
for i in N:
print(i, end='')
설명
문자열 입력을 바로 list로 변환
최소값을 찾기 위해 이중 for문을 사용했다.
0번 인덱스에 들어갈 최소값을 찾기 위해 (0 ~ 맨 끝)을 돌며 최소값을 찾고 0번 인덱스에 삽입
1번 인덱스에 들어갈 최소값을 찾기 위해 (1 ~ 맨 끝)을 돌며 최소값을 찾고 1번 인덱스에 삽입
...
K번 인덱스에 들어갈 최소값을 찾기 위해 (K ~ 맨 끝)을 돌며 최소값을 찾고 K번 인덱스에 삽입
해당 인덱스 앞은 이미 정렬이 완료되었기 때문에 인덱스 뒤만 보면 된다.
'파이썬 > 코딩 테스트' 카테고리의 다른 글
[Do-it! 코딩 테스트-기초편] 019. k번째 수 구하기 (0) | 2023.11.03 |
---|---|
[Do-it! 코딩 테스트-기초편] 018. ATM 인출 시간 계산하기 (0) | 2023.11.03 |
[Do-it! 코딩 테스트-기초편] 016. 버블 정렬 프로그램 1 - 미해결 (0) | 2023.11.03 |
[Do-it! 코딩 테스트-기초편] 015. 수 정렬하기 1 (0) | 2023.10.30 |
[Do-it! 코딩 테스트-기초편] 014. 절대값 힙 구현하기 (0) | 2023.10.27 |
댓글