반응형
1. 문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
2. 입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
3. 출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
4. 예제
예제 입력1>
3
29
38
12
57
74
40
85
61
예제 출력1>
85
8
5. 학습 내용
1) for문 활용
2) 배열 및 index 이해
6. 작성 코드 (기능별 접근)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
// 입력부
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 배열 생성 (크기: 9)
int[] numbers = new int[9];
for (int i = 0; i < 9; i++) { // 배열 초기화 작업
numbers[i] = Integer.parseInt(br.readLine());
}
// maxIndex, maxValue 변수 생성 및 초기화
int maxIndex = findMaxIndex(numbers);
int maxValue = numbers[maxIndex];
// 출력부
System.out.println(maxValue);
System.out.println(maxIndex + 1);
}
// 기능부
// findMaxIndex 메소드 생성 (인수: 배열, 반환: maxIndex(타입: int))
// maxValue = maxIndex값 초기화 선행 후, 해당 index에 저장되어 있는 값
public static int findMaxIndex(int[] numbers) {
// maxIndex, maxValue 변수 생성 및 초기화
int maxIndex = 0;
int maxValue = numbers[0];
// 순차 비교 후, 조건에 부합하면 maxValue, maxIndex 초기화 진행
for (int i = 1; i < numbers.length; i++) {
if (numbers[i] > maxValue) {
maxValue = numbers[i];
maxIndex = i;
}
}
return maxIndex; // Index 반환
}
}
반응형