C언어/문제풀다 하나씩
가장 작은 세자리 출력
mcdn
2020. 5. 13. 14:49
반응형

#include <iostream>
using namespace std;
int min = 1000;
int path[4];
int main() {
int n;
cin >> n;
int arr[5];
for (int i = 0; i < n;i++) {
cin >> arr[i];
}
int used[5] = { 0 };
int answer[3] = { 9,9,9 };
for (int i = 0;i < n;i++) {
if (arr[i] != 0) {
if (used[i] == 0) {
if (answer[0] > arr[i]) {
used[i] = 1;
answer[0] = arr[i];
}
}
}
}
for (int k = 1; k < 3;k++) {
int temp;
for (int i = 0;i < n;i++) {
if (used[i] == 0) {
if (answer[k] > arr[i]) {
temp = i;
answer[k] = arr[i];
}
}
}
used[temp] = 1;
}
for (int i = 0; i < 3;i++) {
cout << answer[i];
}
}
ex)
[입력] [출력]
4
9 1 3 0 103
ex)
[입력] [출력]
5
0 0 0 0 5 500
입력 예제
4 9 1 3 0
출력 결과
103
for (int k = 1; k < 3;k++) {
int temp;
for (int i = 0;i < n;i++) {
if (used[i] == 0) {
if (answer[k] > arr[i]) {
temp = i;
answer[k] = arr[i];
}
}
}
used[temp] = 1;
여기서 used[temp] = 1;을 작은 for문 안에 넣어서 에러남 ;;
다 해결하고 나와서 최종적으로 하나만 used = 1시켜야
반응형