Computer Science/Algorithm

[Algorithm/C] BOJ.3047 ABC

재오니소스 2018. 1. 2. 03:59


접근 방법

1. 처음 받은 숫자를 sorting 하여 배열에 넣었다.

2. case별로 sorting된 배열에서 뽑아서 출력한다.

3. 과연 6가지 모든 경우에 대해 조건문을 해줘야 하는지 의문이다.


/*

Problem : ABC

Writer : J. I. Mun

Date : 20180102

*/

#include <stdio.h>


int main(int argc, char * argv[]) {

int abc[3];

char ch1, ch2, ch3;

int temp = 0;


for(int i=0; i<3; i++){

scanf_s("%d",&abc[i]);

getchar();

ch1 = getchar();

ch2 = getchar();

ch3 = getchar(); fflush(stdin);

//printf("%c %c %c",ch1,ch2,ch3);


for(int i=0; i<3;i++){

for(int j=0; j<2;j++){

if(abc[j] > abc[j+1]){

temp = abc[j];

abc[j] = abc[j+1];

abc[j+1] = temp;

}

}

}


if (ch1 == 'A' && ch2 == 'B' && ch3 == 'C') {

printf("%d %d %d",abc[0],abc[1],abc[2]);

}

else if (ch1 == 'A' && ch2 == 'C'&&ch3 == 'B') {

printf("%d %d %d",abc[0],abc[2],abc[1]);

}

else if (ch1 == 'B' && ch2 == 'A'&&ch3 == 'C') {

printf("%d %d %d",abc[1],abc[0],abc[2]);

}

else if (ch1 == 'B' && ch2 == 'C'&&ch3 == 'A') {

printf("%d %d %d",abc[1],abc[2],abc[0]);

}

else if (ch1 == 'C' && ch2 == 'A'&&ch3 == 'B') {

printf("%d %d %d",abc[2],abc[0],abc[1]);

}

else if (ch1 == 'C' && ch2 == 'B'&&ch3 == 'A'){

printf("%d %d %d",abc[2],abc[1],abc[0]);

}


return 0;

}


출처