문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
코드
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));
int[] arr = new int[9];
int max=0;
int num=0;
for(int i=0;i<9;i++) {
arr[i]=Integer.parseInt(br.readLine());
if(max<arr[i])
{max=arr[i];
num=i+1;}
}
System.out.println(max);
System.out.println(num);
}
}
1. 배열 이용
입력받은 숫자를 배열에 저장하고 배열번호+1으로 몇번째 숫자인지 출력했다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Q2562 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int max=0;
int num=0;
for(int i=0;i<9;i++) {
int n = Integer.parseInt(br.readLine());
if(max<n)
{max=n;
num=i+1;}
}
System.out.println(max);
System.out.println(num);
}
}
2. 배열 이용하지 않기
사실 배열을 이용할 필요가 없는 문제이다.
반복문을 돌리고 지역변수 i를 이용해서 순번을 구해준다. 지역변수 i가 0부터 시작하기 때문에 여기서도 +1해주어야 한다.
'Algorithm > baekjoon' 카테고리의 다른 글
백준 2108 파이썬 : 통계학 - Counter (0) | 2022.10.12 |
---|---|
백준 1874 파이썬 : 스택 수열 (0) | 2022.10.06 |
JAVA : 백준 2475번 검증수 (BufferedReader, Scanner) (0) | 2022.06.12 |
JAVA : 2438번 별찍기-1 (0) | 2022.06.10 |
JAVA : 백준 1546번 평균 (Arrays.sort 배열 오름차순 정렬) (0) | 2022.06.09 |