https://www.acmicpc.net/problem/2752
문제
동규는 세수를 하다가 정렬이 하고 싶어졌다.
정수 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어졌다.
정수 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오.
입력
정수 세 개가 주어진다. 이 수는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 수는 모두 다르다.
출력
제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다.
풀이
1. 공백으로 구분된 정수를 입력받아 리스트에 저장한다.
2. 바깥쪽의 for 루프는 정렬을 반복하는 횟수를 나타낸다. i가 0부터 2까지 변하는 동안 정렬을 수행한다.
3. 안쪽의 for 루프는 현재 인덱스 j와 그 다음 인덱스 j+1을 비교하여 크기가 순서대로 되어 있지 않다면 두 값을 교환한다.
4. 잘 정렬된 리스트 a의 원소를 차례대로 출력한다.
코드
a = list(map(int, input().split()))
for i in range(3):
for j in range(0, 3-i-1):
if a[j] > a[j+1]:
a[j], a[j+1] = a[j+1], a[j]
for i in range(3):
print(a[i])
'Koala - 13기 > 기초 알고리즘 스터디' 카테고리의 다른 글
시험 성적(Python) (0) | 2024.01.14 |
---|---|
[백준/java] 11944번: NN (0) | 2024.01.14 |
[백준/python] 11944번: NN (0) | 2024.01.13 |
[백준/python] 10871번: X보다 작은 수 (0) | 2024.01.13 |
[백준/C++] 15917: 노솔브 방지문제야!! (0) | 2024.01.13 |