<알고리즘 문제풀이&연습>/[C++] 백준, 프로그래머스 등등

[백준 2562] 최대값

BlockDMask 2017. 10. 8. 03:56
반응형
  • 안녕하세요. BlockDMask 입니다.

  • 오늘의 문제 풀어보겠습니다.
    170905 문제 빼먹음 -> 171008 완료

0. 제목

  • 백준 2562 최대값

  • BOJ 2562 최대값

1. 문제 설명


9개의 서로 다른 자연수가 주어질 때,


 이들 중 최대값을 찾고 그 최대값이 몇 번째 수인지 구하는 프로그램을 만들면 됩니다.


예를들어, 서로 다른 9개의 자연수


3, 29, 30, 12, 55, 80, 9, 92, 60


이 주어지면,


이들 중 최대값은 92 이고


이 값은 8번째 수 입니다.


주어지는 자연수의 크기는 100보다 작습니다.


2. 풀이 과정


배열에 각 수를 저장한 후


선형탐색을 이용하여 배열 전체를 탐색하는 방법으로, 


최대값을 구하는 방식으로 풀면 됩니다.


3. 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//https://www.acmicpc.net/problem/2562
//BOJ_2562_최대값
 
//선형으로 전체 탐색을 하면서 max를 구하면 됩니다
 
#include<iostream>
#define N 9
 
using namespace std;
 
 
int arr[N];
 
//배열의 최대값 index 를 반환하는 함수
int getMaxIdx(){
    int max = 0;
    int idx = 0;
 
    for(int i=0; i<N; i++){
        if(arr[i] >= max){
            max = arr[i];
            idx = i;
        }
    }
 
    return idx;
}
 
int main(void){
 
    //입력
    for(int i=0; i<N; i++){
        cin >> arr[i];
    }
 
    int idx = getMaxIdx();
 
    //출력
    cout << arr[idx] << endl;
    cout << idx+1;
 
    return 0;
 
}
cs


4. 인증


문제 출처 - https://www.acmicpc.net/problem/2562

감사합니다. 하트 꾹꾹꾹 부탁드립니다. 

반응형