[BAEKJOON - C++] 2562번 : 최댓값

정다은·2023년 7월 3일
0

BAEKJOON

목록 보기
38/54
C++ 배우기 (51~100) 이 문제집을 참고하여 문제를 풀었습니다.

2023년 1월 ~ 2월에 프로그래밍을 공부하기 위해 풀었던 문제들이다.

🍑문제

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

예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.

입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.

출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.

🍑대략적인 틀

  • 9개의 자연수를 입력받고
  • 가장 큰 자연수를 뽑아서 첫째줄에 최댓값 둘째줄에 그 최댓값이 몇번째 수인지 출력

🍑오류 해결

한번 틀렸었는데 질문 게시판에서 그 이유를 찾아보니

max = store[0];
for (int i = 1; i < 9; i++) {
	max = max > store[i] ? max : store[i];
	if (max == store[i])
		count = i;
}

이 max와 max의 index를 찾는 부분이 문제였다. 만약 max가 store[0] 이라면 index가 저장되지 않았다.

백준을 하며 컴퓨터가 채점을 해주니 좋은 점은 내가 넣어본 값에 대한 결과값만 나왔을 때는 모를 수 있었던 예외 사항을 잘 찾아준다는 것이었다.

🍑 작성한 코드

// 최대값

#include <iostream>
using namespace std;

int main() {
	int max, count, store[10];

	for (int i = 0; i < 9; i++)
		cin >> store[i];
	max = -1;
	for (int i = 0; i < 9; i++) {
		max = max > store[i] ? max : store[i];
		if (max == store[i])
			count = i;
	}
	cout << max << '\n' << count + 1;
}
profile
보안 공부하는 대학교 3학년 / 시리즈에서 더욱 편하게 글을 찾아보실 수 있습니다:)

0개의 댓글