https://www.acmicpc.net/problem/3047
문제
세 수 A, B, C가 주어진다. A는 B보다 작고, B는 C보다 작다.
세 수 A, B, C가 주어졌을 때, 입력에서 주어진 순서대로 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 세 수 A, B, C가 주어진다. 하지만, 순서는 A, B, C가 아닐 수도 있다. 세 수는 100보다 작거나 같은 자연수이다. 둘째 줄에는 A, B, C로 이루어진 세 글자가 주어지며, 이 순서대로 출력하면 된다.
출력
주어진 세 수를 주어진 출력 순서대로 출력하면 된다.
예제 입력 1
1 5 3
ABC
예제 출력 1
1 3 5
풀이
삽입정렬을 이용해서 풀었고
A는 B보다 작고, B는 C보다 작기 때문에 A<B<C 이다.
따라서 정렬을 한 뒤 입력받은 ABC 순서대로 출력하면 되는 간단한 문제이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include <iostream>
#include <string>
using namespace std;
#define swap(x,y,tmp)((tmp)=(x),(x)=(y),(y)=(tmp))
int main(){
int list[3];
string str;
for(int i=0; i<3; i++)
cin >> list[i];
cin >> str;
int least,tmp;
for(int i=0; i<2; i++){
least = i;
int j;
for(j=i+1; j<3; j++)
if(list[j] < list[least])
least = j;
if(i!=least)
swap(list[i], list[least], tmp);
}
for(int i=0; i<3; i++)
cout << list[str[i]-'A'] << " ";
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
'C++ > 백준' 카테고리의 다른 글
[C++][백준] 4344 평균은 넘겠지 (0) | 2020.03.10 |
---|---|
[C++][백준] 3052 나머지 (0) | 2020.03.10 |
[C++][백준] [정렬] 2959 거북이 (0) | 2020.03.10 |
[C++][백준] [정렬] 2870 수학숙제 (0) | 2020.03.10 |
[C++][백준] 2869 달팽이는 올라가고 싶다 (0) | 2020.03.10 |