본문 바로가기
Java (국비)/Java 문제

배열리스트 문제 2

by Hwanii_ 2023. 5. 20.
728x90

 

이클립스에서 구현

 

 

1. 문제에서 정수를 3개까지 받겠다고 했으니,

절대 변하지 않는 상수로 처리해서 final int CNT = 3;

 

size() : 컬렉션프레임워크 타입들의 길이에 대해 알고 싶을때 사용.

 

2. 정수 말고 그외의 것들도 입력 받을 수 있어서,

입력을 총 몇번 받을지 모르니까 while.

 

3. 정수를 입력받으면 문제되는게 없으니, data.add(num) 이 되고,

 

4. 그렇지 않으면, catch 문으로 들어가서 출력문이 나오고,

continue; 된다.

 

주의할점 :

 

data.size() <= CNT 가 되면

정수 3개 입력받고, data.size()가 3이 됬을 때

3 < = CNT 니까 while 조건식이 T라 한번 더 while 문을 돌게 된다.

 이때, data.add(num); 을 해서 정수가 인덱스 3번째에 저장되고,

data.size()는 4가 된다.

문제의 조건에는 정수를 3개만 입력받기로 했으니, 이 부분을 헷갈리지 않도록 주의.

 

1. 0보다 작거나 같으면 해당 데이터값을 지우고, 반복한다.

 

2. 지워지면 데이터값들이 자동으로 밀린다.

 

3. 0보다 확실히 클 경우에는, 지우지 않고 i++를 해줘서 그 다음 인덱스의 값을 판단한다.

 

 

1. 최대값을 담을 변수를 max로 설정하고,

 

2. for문의 초기값을 i = 1;로 줘서 1번째 인덱스 부터 비교할 수 있게.

 

3. data.get(0)이랑 data.get(1, 2, 3, ...) 이랑 비교하면서 어떤 값이 더 크면

그 값이 새롭게 max 변수에 저장되고, 해당 인덱스가 maxIndex 변수에 저장된다.

 

4. 해서 최대값과 최대값 인덱스를 출력하고,

data.remove(maxIndex) 를 해서 최대값을 지워버린다.

 

5. 최대값이 지워진 상황에서 나머지 값들의 총합을 구하고

배열의 길이로 나눠서 평균을 구한다.

 

Console

 

반응형

'Java (국비) > Java 문제' 카테고리의 다른 글

Thread 문제  (0) 2023.05.22
예외처리 문제  (0) 2023.05.20
배열리스트 문제  (0) 2023.05.20
상속 문제  (0) 2023.05.15
자판기 프로그램 제작 2  (0) 2023.05.12