[level 2.2] 배열 - 두 번째 최솟값 찾기

지니·2020년 4월 4일
0

Algorithm

목록 보기
8/17

문제

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>
#include <vector>
#include <algorithm>
using namespace std;

vector <pair<int, int> > v;

int main(){
  for(int i=0; i<9; i++){
    int tmp=0;
    scanf("%d", &tmp);
    v.push_back(make_pair(tmp, i));
  }  
  
  sort(v.begin(), v.end());
  
  printf("%d\n%d", v[1].first, v[1].second+1);
  
  return 0;
}
profile
기록하여 기억하자

0개의 댓글