Coding Test/BaekJoon
[BaekJoon Java] 최댓값(2562), Array와 ArrayList 차이점
momong'-'
2020. 12. 26. 17:05
2562번: 최댓값
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어
www.acmicpc.net
- 문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
- 예제 입출력
- 풀이
package step.array.one_dimensional;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
* 예를 들어, 서로 다른 9개의 자연수
* 3, 29, 38, 12, 57, 74, 40, 85, 61
* 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
* @author imj10
*
*/
public class Max {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
List<Integer> list = new ArrayList<Integer>();
int max = 0;
int seq = 0;
for ( int i=1; i <= 9; i ++ ) {
int a = sc.nextInt();
list.add(a);
if ( max < a ) {
max = a;
seq = i;
}
}
System.out.println(max + "\n" + seq);
}
}
- 결과
- 추가설명
문제를 풀면서 궁금증이 생겼다.
array를 처음 배울때만 쓰고 잘 쓰지 않았던거 같다.
항상 ArrayList를 썼는데 그냥 배열을 사용하는 이유가 있을 거 같은데 뭐였을까 궁금해졌다.
그래서 차이점을 찾아봤다.
배열(Array)와 ArrayList 차이점
1. 배열(Array)
- 배열의 크기: 불변적. 변경 불가
- 초기화 시 메모리에 할당되어 상대적으로 속도가 빠르다.
-- Array 생성
int[] arr = new int[5];
2. ArrayList
- 배열의 크기: 가변적
- 저장하는 데이터 수에 따라 크기 변경
- 추가 시 add(), 삭제 시 remove() 사용
- 데이터 추가 삭제 시 메모리를 재할당하기 때문에 속도가 상대적으로 느리다.
-- ArrayList 생성
List<Integer> list = new ArrayList<Integer>();