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

+ Recent posts