반응형
접근 방법)
배열을 이용하지 않고 for문 안에서 9번 반복작업을 통해 값 크기 비교를 하여 문제를 풀 수 있다
하지만 배열 파트인 만큼 1차원 배열을 사용하여 문제를 풀어보도록 하자.
크기가 N인 1차원 배열을 생성한 후 두 번째 줄에 입력받은 값들을 모두 배열 안에 넣어준다. 그리고 배열 안의 값들을 하나씩 비교하면서 앞 값과 비교했을 때 크면 max, 작으면 min으로 할당하여 N-1번 배열까지 반복작업을 하면 최대, 최솟값을 구할 수 있다.
▷ 1차원 배열 생성
1차원 배열 생성은 for문을 이용하여 쉽게 나타낼 수 있다.
int[] g = new int[N];
for(int i = 0; i < N; i++){
int a = s.nextInt(); // Scanner s = new Scanner(System.in)
g[i] = a;
}
배열 [0]부터 배열 [N-1] 번까지 값을 넣어주는 반복 작업으로 1차원 배열을 생성할 수 있다.
▷ max와 그때 숫자 번호를 구하기 위한 for문
int max = 0;
int max_num = 0;
for(int j= 0; j < n; j++){
if(g[j] > max){
max = g[j];
max_num = j+1;
}
}
앞 값과 비교하여 클 때는 max에 할당, if문을 충족시켰을 때 j+1 값이 최댓값에 해당하는 숫자 번호이다.
정답 코드 1)
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
int[] g = new int[9];
int max = 0;
int max_num = 0;
for(int i = 0; i < 9; i++){
int a = s.nextInt();
g[i] = a;
}
for(int j = 0; j < 9; j++){
if(g[j] >= max){
max = g[j];
max_num = j+1;
}
}
System.out.print(max+"\n"+max_num);
}
}
위는 배열을 사용하여 배열 안에 값을 집어넣고 배열 처음부터 끝까지 값을 비교하며 최댓값과 그에 해당하는 숫자번호를 찾는 코드이다.
정답 코드 2)
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int max = 0;
int max_num = 0;
for(int i = 0; i < 9; i++){
int num = sc.nextInt();
if(num > max){
max = num;
max_num = i+1;
}
}
System.out.print(max+"\n"+max_num);
}
}
간단하게 for문을 이용하여 최댓값과 그에 해당하는 숫자번호를 찾는 코드이다.
반응형
'Baekjoon 자바 코드 > 1차원 배열' 카테고리의 다른 글
[백준] 10813번 공 바꾸기 풀이 코드 (Java 자바) (0) | 2024.07.30 |
---|---|
[백준] 10810번 공 넣기 풀이 코드 (Java 자바) (0) | 2024.07.29 |
[백준] 10818번 최소, 최대 풀이 코드 (Java 자바) (0) | 2024.07.22 |
[백준] 10871번 x보다 작은 수 풀이 코드 (Java 자바) (0) | 2024.07.09 |
[백준] 10807번 개수 세기 풀이 코드 (Java 자바) (0) | 2024.07.08 |