자이의 프로그래밍
두 번째 최솟값 찾기 본문
문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 두 번째 최솟값을 찾고, 그 두 번째 최솟값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 두 번째 최솟값은 12이고, 이 값은 4번째 수이다.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 10,000,000 보다 작다.
출력
첫째 줄에 두 번째 최솟값을 출력하고, 둘째 줄에 두 번째 최솟값이 몇 번째 수인지를 출력한다.
예제 입력
3
29
38
12
57
74
40
85
61
예제 출력
12
4
------------------------------------------------------------------------------------------------------------------------------
가장 작은 최솟값을 찾고, 그것보단 크면서 다른 수보다 작은 수를 찾는 방식으로 진행했다.
#include <iostream>
using namespace std;
int main() {
int arr[15];
int b;
for (int i = 0; i < 9; i++) {
cin >> arr[i];
}
int a = arr[0];
for (int i = 0; i < 9; i++) {
if (arr[i] <= a)
a = arr[i];
}
if (a != arr[0]) b = arr[0];
else b = arr[1];
for (int i = 0; i < 9; i++) {
if (arr[i] > a && arr[i] <= b)
b = arr[i];
}
cout << b << endl;
for (int i = 0; i < 9; i++) {
if (arr[i] == b) {
cout << i + 1 << endl;
}
}
return 0;
}