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시켜야 

 

반응형