728x90
문제설명
세 수를 오름차순으로 정렬하려고 한다. (낮은 숫자 -> 높은 숫자)
예)
5 8 2 ====> 2 5 8 로 출력
입력
세 정수가 입력된다.
출력
낮은 숫자부터 출력한다.
입력예시
8 7 6
출력예시
6 7 8
#include <stdio.h>
int main(void){
int a,b,c,temp;
scanf("%d %d %d", &a, &b,&c);
if(a>=b){
temp=a;
a=b;
b=temp;
}
if(b>=c){
temp=b;
b=c;
c=temp;
}
if(a>=b){
temp=a;
a=b;
b=temp;
}
printf("%d %d %d", a, b, c);
return 0;
}
이 문제를 괜히 꼬아서 생각을 했다. 단순 if문으로는 풀 수 없을것이라고 처음에 생각해서 배열로 건드렸는데 잘 되지 않았다. 저장 자체가 제대로 되지 않아 다른 사람의 코드를 보았더니 단순 if 문으로 가능하다는 것을 알 수 있었다. if문 3개로 만들 수 있는데 특이한 점은 마지막 if문과 처음 if문은 같다는 것이다. 같은 이유는 중간의 과정에서 b자리에 다시 큰 값이 올 수 있기 때문이다. 그래서 같은 식을 한번 더 반복을 해주어야 하고 임시의 공간인 temp도 선언해주는 것도 잊지 않으면 된다. 너무 꼬아서 생각하지 말고 깔끔하게 생각하는 연습을 해야겠다.
728x90
'C language > Codeup' 카테고리의 다른 글
[C] 코드업 문제풀이 1805:입체기동장치 생산공장 (0) | 2021.08.19 |
---|---|
[C] 코드업 문제풀이 1535:함수로 가장 큰 값 위치 리턴하기 (0) | 2021.08.19 |
[C] 코드업 문제풀이 1420: 3등찾기 (0) | 2021.08.18 |
[C] 코드업 문제풀이 1460: 2차원 배열 순서대로 채우기 1-1 (0) | 2021.08.18 |
[C] 코드업 문제풀이 1295: 알파벳 대소문자 변환 (0) | 2021.08.18 |