코딩 | 알고리즘 & 문제풀이/백준_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을 해주어 위치값을 표시해주었다.
그럼 오늘도 즐거운 코딩!
반응형