컴퓨터공학 💻 도서관📚

Part2. 8-10 특정 범위의 숫자가 나열되어 있을 때 각 숫자의 개수를 세어봅시다. 본문

✅🌲강의 복습 노트/패캠 JavaSpring 강의,코드 복습

Part2. 8-10 특정 범위의 숫자가 나열되어 있을 때 각 숫자의 개수를 세어봅시다.

들판속초록풀 2026. 1. 11. 10:31

문제 정의

M 이상 N 이하의 수가 나열되어 순서에 상관없이 나열되어 있다고 할 때 각 수가 몇개인지 세어보는 방법을 구현해봅시다. 가령 20세부터 100세 이하의 사람들이 어느 한 장소에 머물고 있다고 할때 연령대에따라 혹은 각 나이에 따른 인원을 체크해볼 수 있습니다.

 

수행 시간 :  O(n)  ,  n : 데이터의 개수

 

 

테크닉 :

기준점을 순차적으로 높여 분류하는 테크닉

 

반대로 만들면?  --> 기준점으로 순차적으로 낮춰서 분류하면 된다.

ex)  

if ( age > 90 )

else if ( age > 80 )

else if ( age > 70 )

...

else if ( age >= 20 )

 

public class Counting {

	public static void main(String[] args) {

		int[] people = { 55, 40, 27, 99, 76, 81, 29, 31,33, 62}; 
		int[] ages = new int[10]; //연령대에 따른 수 세기
		

		for(int i = 0; i<people.length; i++) {
			int age = people[i];
                                       // 기준점을 순차적으로 높여 분류하는 테크닉
			if(age <30) ages[0]++;         // 20대
			else if(age < 40) ages[1]++;
			else if(age < 50) ages[2]++;
			else if(age < 60) ages[3]++;
			else if(age < 70) ages[4]++;
			else if(age < 80) ages[5]++;
			else if(age < 90) ages[6]++;
			else if(age <= 100) ages[7]++;
		}
		int number = people.length;
		System.out.println( number + "명 중 20대는 " + ages[0]+ "명 입니다.");
		System.out.println( number + "명 중 30대는 " + ages[1]+ "명 입니다.");
		System.out.println( number + "명 중 40대는 " + ages[2]+ "명 입니다.");
		System.out.println( number + "명 중 50대는 " + ages[3]+ "명 입니다.");
		System.out.println( number + "명 중 60대는 " + ages[4]+ "명 입니다.");
		System.out.println( number + "명 중 70대는 " + ages[5]+ "명 입니다.");
		System.out.println( number + "명 중 80대는 " + ages[6]+ "명 입니다.");
		System.out.println( number + "명 중 90대는 " + ages[7]+ "명 입니다.");
		
		
	}

}
Comments