250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Vue
- querySelector
- realIndex
- index
- prettier
- slideChange
- swiper
- vscode
- eslint
- CORS
- 인덱스
- centerSlides
- activeIndex
- vue2
- javascirpt
- display
- jquery
- watchOverflow
- classlist
- v-bind
- js
- slidePerView
- loop:true
- archiver
- css
- eslint prettier
- swiperOption
- slidePerGroup
- JavaScript
- error
Archives
- Today
- Total
코딩하는 둥둥
[ 백준 Baekjoon / JAVA ] 2562번 : 최댓값 본문
728x90
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
- 입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
- 출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
https://www.acmicpc.net/problem/2562
2562번: 최댓값
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어
www.acmicpc.net
조건 1. 입력한 숫자의 개수는 9개
조건 2. 입력한 숫자 중 최댓값을 출력
조건 3. 최댓값이 입력한 숫자 중 몇번째로 입력되었는지 출력
Scanner와 Arrays.sort 사용
입력 받은 값 중 최댓값을 출력하기 위해 입력값을 담은 배열을 Arrays.sort() 메서드로 오름차순으로 정렬하고 배열의 마지막 값을 출력하였다.
문제는 최댓값이 입력한 숫자 중 몇번째 숫자인지를 출력하는 부분이었다.
for문을 이용해서 최댓값과 배열의 j번째 값이 같을때 count를 j로 설정해 해당값을 출력하도록 구현했는데 이 부분에서 무조건적으로 8이 출력되었다.
최댓값을 구하기위해 Arrays.sort()메서드로 오름차순으로 배열의 순서가 다시 정렬되었기때문에 최댓값의 순서도 맨 마지막 순서인 8로 출력된것같았다. (0부터 시작했기때문에 8출력)
그래서 Arrays.sort()대신 for문을 이용해 최댓값을 구해보기로 했다.
Scanner와 for문 사용
최댓값을 구하기위해 nList배열의 값이 nList의 첫번째값보다 클때, 해당 값을 max에 넣도록 for문을 사용했다.
이 경우 배열의 순서가 변경되지 않기때문에 for문을 이용해 최댓값의 순서를 출력할 수 있었다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n;
int[] nList = new int[9];
// 9개의 자연수 입력받기
for(int i = 0; i < nList.length; i++) {
n = sc.nextInt();
nList[i] = n;
}
// 입력받은 값 중 최댓값 출력 : 정렬
// Arrays.sort(nList);
// int max = nList[8];
// Math.max
int max = nList[0];
for(int i = 0; i < nList.length; i++) {
if(nList[i] > max) {
max = nList[i];
}
}
System.out.println(max);
// 최댓값이 입력한 숫자 중 몇 번째 숫자인가?
int count = 1;
for(int j = 0; j < nList.length; j++) {
if(max == nList[j]) {
count = j+1;
System.out.println(count);
break;
}
}
}
}
|
cs |
728x90
'Backend > 백준' 카테고리의 다른 글
[ 백준 Baekjoon / JAVA ] 3052번 : 나머지 (0) | 2022.05.26 |
---|---|
[ 백준 Baekjoon / JAVA ] 2562번 : 숫자의 개수 (0) | 2022.05.12 |
[ 백준 Baekjoon / JAVA ] 10818번 : 최소, 최대 (1차원 배열) (0) | 2022.05.03 |
[ 백준 Baekjoon / JAVA ] 25083번 : 새싹 (입출력과 사칙연산) (0) | 2022.05.01 |
[ 백준 Baekjoon / JAVA ] 단계별로 풀어보기_3.반복문 (0) | 2022.04.15 |