글 작성자: 취업중인 피터팬
728x90
기본 환경
JDK : 1.8.0_261 버전
JRE : 1.8.0_261 버전
JAVA VERSION : 8 업데이트 261
Eclipse IDE VERSION : 2020-06버전

 

시나리오

answer배열에 1,4,4,3,1,4,4,2,1,3,2 값을 초기화 하고 숫자의 갯수를 출력하는 프로그램을 만드시오.

(단, if문을 사용하지 말것.)


 

 

 

다음과 같은 결과가 나와야 합니다.

 

 

정답

 

package ex06array;

public class QuNumberCounter {

	public static void main(String[] args) {
		int[] answer = {1,4,4,3,1,4,4,2,1,3,2};
		/*
		 배열을 크기를 지정하여 선언하면 0으로 채워진다.
		 */
		int[] counter = new int[4];
		
		for(int i = 0; i < answer.length; i++) {
//			if(answer[i] == 1) {
//				counter[0] ++;
//			}
//			else if(answer[i] == 2) {
//				counter[1] ++;
//			}
//			else if(answer[i] == 3) {
//				counter[2] ++;
//			}
//			else if(answer[i] == 4) {
//				counter[3] ++;
//			}
			
			/*
			 위 if~else문을 한줄로 수정하면 다음과 같다
			 검색한 숫자가 만약 1이라면 counter배열의 0번 인덱스를
			 +1 증가시키므로 아래와 같이 표현할 수 있다.
			 */
			counter[answer[i]-1]++;
			
		}
		for(int i = 0; i < counter.length; i++) {
			System.out.println("counter[" + i + "] =>" + counter[i] );
		}
	
	}

}

 

if문을 사용하면 매우 쉬운 문제이지만 그럼 재미가 없죠. 코드가 짧다고 꼭 좋은 프로그램은 아니지만 그래도 짧게 짤 수 있는 코드라면 그 방법도 알고 있어야 합니다.