코딩 | 알고리즘 & 문제풀이/백준_Backjoon

[C언어] Backjoon_Code 2562, 최대값 위치 찾기

PatienceLee 2021. 6. 25. 14:54

https://www.acmicpc.net/problem/2562

 

2562번: 최댓값

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어

www.acmicpc.net

문제의 키 포인트

1. 9개의 수를 입력 받는다.

2. 마지막 출력으로 최대값과 최대값이 몇 번째 수인지 출력한다.

 

해결방안

1. 9개의 수를 입력받기 위해 배열을 사용한다.

2. 반복문을 통해 값을 입력받으면서 현재 저장된 최대값과 비교한다.

3. 이 때, 비교값이 최대값보다 크다면 해당 값을 최대값에 저장하고 위치값도 변경해준다.

 

소스코드

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int array[9] = { 0, }; // 배열을 선언하고 0으로 초기화
    int i; // 반복변수
    int temp; // 최대값 위치 저장
    int max = 0; // 최대값을 초기값 0으로 초기화
    for (i = 0; i < 9; i++)
    {
        scanf("%d", &array[i]);
        if (max < array[i])
        {
            max = array[i];
            temp = i;
        }
    }
    printf("%d\n%d\n", max, temp + 1); // 최대값과 최대값의 위치 출력
}

 

주의할 점

1. 보통 숫자를 셀 때 1부터 시작하지만, 배열은 0부터 시작한다. ex. 0, 1, 2, 3, 4, 5, 6, 7, 8

2. 따라서 temp의 값에 +1을 해주어 위치값을 표시해주었다.

 

그럼 오늘도 거운 딩!

반응형