문제 2562번

파이썬과 자바는 .. 비슷하다 싶으면서도 참 다르다 ...
오늘은 인덱스 번호를 출력하기 위해서 평소 습관대로 "배열이름.index" 를 사용하다가 .. 이게 아님을 알게 되었다.
자바에서는 파이썬처럼 list.index() 메소드로 특정 값의 인덱스를 바로 찾을 수 없다.
여러 방법이 존재하겠지만, 나는 반복문을 사용해 원하는 값을 찾는 메서드를 만드는 방식으로 습관을 만들어보겠다.
( 눈으로 코딩하는 건 정말 효율 떨어지는 공부임을 .. 또 반성합니다 )
문제 접근
- 배열에 값을 입력하기
- 반복문을 통해 배열에서 최댓값 찾기
- 최댓값의 인덱스 찾기
1. 배열에 값을 입력하기
이제 배열을 정의하고, 값을 입력하는 것까지는 잘 하는 것 같다.
2. 반복문을 통해 배열에서 최댓값 찾기
우선 첫번째 인덱스를 임의로 최댓값인 변수로 지정한 후 반복문을 돌린다.
임의로 지정한 변수보다 값이 클 경우 그 값을 새롭게 변수에 할당한다.
3. 최댓값의 인덱스 찾기
임의로 인덱스 변수에 값을 지정하고
반복문을 통해 출력되는 배열과 최댓값이 저장되어 있는 변수의 값이 같을 때 , 해당 인덱스 값을 인덱스 변수에 할당한다.
최댓값의 첫 번째 인덱스를 찾으면 반복문을 종료하기 위해 break를 사용한다.
최종 코드
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
// 배열에 값을 입력하기
int[] num = new int[9];
for (int i = 0; i < num.length; i++) {
num[i] = scanner.nextInt();
}
// 반복문을 통해 배열에서 최댓값 찾기
int maxNumber = num[0]; // 임의로 지정
for (int i = 0; i < num.length; i++) {
if (maxNumber < num[i]) {
maxNumber = num[i];
}
}
// 최댓값의 인덱스 찾기
int index = -1;
for (int i = 0; i < num.length; i++) {
if (num[i] == maxNumber) {
index = i;
break; // 최댓값의 첫 번째 인덱스를 찾으면 반복문 종료
}
}
System.out.println(maxNumber);
System.out.println(index+1); // 인덱스를 1부터 시작하도록 출력
}
}
인덱스 번호를 찾기 위해서는 변수와 반복문을 사용할 것
다른 방법이 있다면 ... 다음에 알아보겠다 ... 하나라도 똑바로 적응하고 싶다
그리고 분명 이거보다 단순하게 짤 수 있는 방법 있을 것 같은데
일단 .. 스스로 구현해보는 것에 의의를 두고, 그 후에 좀 더 연습해보기
참고 자료
☕ JAVA 배열(Array) 완벽 다루기 가이드
배열 자료형 배열(array)은 프로그래밍에서 필수로 등장하는 요소이며 정말 자주 쓰이는 자료형이다. 배열은 하나의 블록안에 여러 데이터들을 모아 집합시켜 저장함으로써 데이터를 구조적으로
inpa.tistory.com
'BAEKJOON' 카테고리의 다른 글
| [ 백준 - Java ] 20492번 세금 (2) | 2024.11.07 |
|---|---|
| [ 백준 - Java ] 1001번, 10998번, 1008번 (0) | 2024.11.07 |
| [ 백준 - Java ] 1000번 (1) | 2024.10.29 |