Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

특정 범위의 숫자가 나열돼 있을 때 각 숫자의 개수 본문

Java/알고리즘

특정 범위의 숫자가 나열돼 있을 때 각 숫자의 개수

Seung__ 2021. 6. 26. 21:16

1. 문제


  M이상 N이하의 수가 나열되어 순서에 상관없이 나열되어 있다고 할 때, 각 수가 몇 개인지 세어보자.

 예를들어 20세 이상 100세 이하의 사람들이 한 장소에 머물러 있다.

 연령에 따라 혹은 각 나이에 따른 인원을 체크하자.

 

2. 배열을 쭉 돌면서 ages배열에 나이 대 별로 counting을 추가한다.

  데이터의 수에 computation time이 비례한다. 즉 O(n)이다.

 

3. 핵심은 찾고자 하는 값에 대한 배열을 만들고 그 배열에 바로바로 입력하는 것.

 

4. 코드

package Counting;

import java.util.Arrays;

public class counting {

    public static void main(String[] args) {

        int[] people = {55, 40, 22, 99, 76, 81, 29, 31, 33, 65};

        int[] ages = new int[11]; //연령에 따라

        for(int i = 0; i< people.length; i++){
            int age = people[i];
            if(age < 30) ages[2]++;
            else if(age < 40) ages[3]++;
            else if(age < 50) ages[4]++;
            else if(age < 60) ages[5]++;
            else if(age < 70) ages[6]++;
            else if(age < 80) ages[7]++;
            else if(age < 90) ages[8]++;
            else ages[9]++;

        }

        int temp = 20;
        int number = people.length;
        for(int i=2; i < ages.length-1; i++){

            System.out.println(number + "명 중 " + temp + " 대는 : " + ages[i] + "명");

            temp +=10;

        }



    }
}

* git : https://github.com/bsh6463/Algorithm/tree/main/Counting

 

5. 결과

 

10명 중 20 대는 : 2명
10명 중 30 대는 : 2명
10명 중 40 대는 : 1명
10명 중 50 대는 : 1명
10명 중 60 대는 : 1명
10명 중 70 대는 : 1명
10명 중 80 대는 : 1명
10명 중 90 대는 : 1명

'Java > 알고리즘' 카테고리의 다른 글

그리디(Greedy) 알고리즘  (0) 2022.05.15
경우의 수 문제(Brute-Force Search)  (0) 2021.06.26
그리디(Greedy) 알고리즘  (0) 2021.06.26
피보나치 수열(Fibonacci Sequence)  (0) 2021.06.13
미로 찾기!  (0) 2021.06.10
Comments