728x90
SMALL
백준 문제 풀이: 2562 [최댓값]
문제 링크: https://www.acmicpc.net/problem/2562
문제 설명:
9개의 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 값이 몇 번째 수인지 출력하는 프로그램을 작성하세요.
입력 조건:
- 첫째 줄부터 아홉 번째 줄까지 자연수가 주어집니다. (1 ≤ 자연수 ≤ 100)
출력 조건:
- 첫째 줄에 최댓값을 출력합니다.
- 둘째 줄에 최댓값이 몇 번째 수인지 출력합니다.
문제 해결 코드
#include <iostream>
using namespace std;
int main() {
int arr[9]; // 9개의 숫자를 저장할 배열
int maxVal = -1; // 최댓값 초기화
int index = -1; // 최댓값의 인덱스 초기화
// 입력받기
for (int i = 0; i < 9; i++) {
cin >> arr[i];
}
// 최댓값과 인덱스 찾기
for (int i = 0; i < 9; i++) {
if (arr[i] > maxVal) {
maxVal = arr[i];
index = i + 1; // 인덱스는 1부터 시작
}
}
// 결과 출력
cout << maxVal << '\n' << index << endl;
return 0; // 프로그램 정상 종료
}
코드 설명
위 코드는 9개의 자연수 중 최댓값을 찾고, 해당 최댓값이 몇 번째 수인지 출력합니다.
- 배열 입력:
- `arr[9]` 배열에 9개의 숫자를 입력받습니다.
- 최댓값 탐색:
- `maxVal` 변수를 사용하여 최댓값을 저장합니다.
- `index` 변수에 최댓값이 위치한 1-based 인덱스를 저장합니다.
- 반복문을 통해 배열의 모든 값을 순회하며 최댓값과 인덱스를 갱신합니다.
- 출력:
- 최댓값과 해당 인덱스를 각각 출력합니다.
시간 복잡도 분석:
- 입력: 9개의 값을 입력받는 데 O(9).
- 최댓값 탐색: 배열을 한 번 순회하므로 O(9).
따라서 전체 시간 복잡도는 O(1)로 상수 시간입니다.
결과
다음은 입력 예시와 출력 결과입니다:
입력:
3
29
38
12
57
74
40
85
61
출력:
85
8
위 입력에서는 최댓값이 85이고, 이는 8번째 입력값입니다.
다른 접근 방식이나 개선 사항이 있다면 댓글로 공유 부탁드립니다!
728x90
LIST
'BAEKJOON > 구현' 카테고리의 다른 글
백준 2920번 [음계](C++)-yes6686- 티스토리 (0) | 2023.12.18 |
---|---|
백준 2741번 [N 찍기](C++)-yes6686- 티스토리 (0) | 2023.12.18 |
백준 2557번 [Hello World](C++)-yes6686- 티스토리 (0) | 2023.12.16 |
백준 2439번 [별 찍기-2](C++)-yes6686- 티스토리 (0) | 2023.12.16 |
백준 2438번 [별 찍기-1](C++)-yes6686- 티스토리 (0) | 2023.12.16 |