코딩테스트

[C] 두 번째 최솟값 찾기

갓 시작한 코린이 2022. 5. 26. 01:48

문제


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 <stdio.h>

int main() {

  //Please Enter Your Code Here
  int arr[10]; 
  int a,b; 
  for (int i = 0; i < 9; i++) { 
	  scanf("%d",&arr[i]);
  } 
  a = arr[0]; 
  for (int i = 0; i < 9; i++) { 
	  if (arr[i] <= a) 
		  a = arr[i]; //a에 최솟값 저장
  } 
	
  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에 저장
	  b = arr[i]; 
  } 
  printf("%d\n",b); 
  for (int i = 0; i < 9; i++) { 
	  if (arr[i] == b) { 
		  printf("%d",i+1);
	  } 
  } 

  return 0;
}

'코딩테스트' 카테고리의 다른 글

[C] Card game  (0) 2022.05.26
[C] 점수 계산  (0) 2022.05.26
[C] 소수 판별 2  (0) 2022.05.26
[C] 삼각형 출력 3  (0) 2022.05.26
[C] 삼각형 출력 2  (0) 2022.05.26