📌문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
📌답
<오답>
틀린이유: toList()는 JAVA16부터 지원..
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
List<Integer> a = new ArrayList<>();
for(int i = 0; i<9; i++) {
a.add(Integer.parseInt(br.readLine()));
}
int max = a.stream().mapToInt(Integer::intValue).max().getAsInt();
int b = a.stream().toList().indexOf(max)+1;
System.out.println(max);
System.out.println(b);
}
}
<정답>
이게 더 성능이 좋긴 함..
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 a[] = new int[9];
int index = 1;
int max=0;
for(int i = 0; i<a.length; i++) {
a[i] =Integer.parseInt(br.readLine());
}
max=a[0];
for(int i = 0; i<a.length; i++) {
if(a[i]>max) {
max=a[i];
index=i+1;
}
}
System.out.println(max);
System.out.println(index); }
}
📢
1. 개발자 준비생이 공부한 내용을 정리한 글입니다. 내용에 오류가 있을 수 있습니다.
2. 위와 같은 이유로 내용에 대한 지적과 조언은 감사하게 받습니다.
3. 이 글의 내용은 계속 공부함으로써 언제든지 추가/수정 될 수 있습니다.
'Coding Test > 백준 - JAVA' 카테고리의 다른 글
백준 10813번 공 바꾸기 (JAVA) (0) | 2024.12.10 |
---|---|
백준 10810번 공 넣기 (JAVA) - 문제 상세 해설/답 (0) | 2024.12.10 |
백준 10818번 최소, 최대 (JAVA) (0) | 2024.12.10 |
백준 10871번 X보다 작은 수 (JAVA) (1) | 2024.12.09 |
백준 10807번 개수 세기 (JAVA) (0) | 2024.12.09 |