[자바알고리즘] 3. 최빈수구하기

2020. 3. 17. 23:13백준알고리즘

728x90

*2020. 03. 17. 화

*최빈수구하기(가장 많이 출현한 수 구하기)

 

내가 직접 풀어본 내용
풀이

 

<고민내용>

1. 어떻게 최빈수를 구하지?

2. 어차피 숫자를 비교하여 구하여 할 것 같으니 0부터 9까지의 수와 비교를 구하면 되지 않을까?

3. 최빈수를 구할 숫자들을 배열에 담아 0부터 9까지의 숫자와 비교를 하면 되지 않을까?

4. 그런데 어떤 방식으로 비교를 해야 최빈수를 구할 수가 있는거지?

5. for문을 이중으로 사용하여 하나는 최빈수를 구할 배열 인덱스로 사용하고 하나는 비교할 0부터 9까지의 수로 사용하면 되지 않을까?

6. 그런데 여기서 이중 for문을 어떻게 활용해야하지?

7. 먼저,  최빈수를 구할 배열 원소를 첫원소와 0부터 9를 비교하고 두번째 원소를 0부터 9를 비교하는 식으로 하면 되지 않나?

- 잘못됨 이렇게 하면 cnt가 증가를 할 수가 없음.

  for(int i=0; i<arr.length; i++){
  	int cnt = 0;     
    for(int j=0; j<10; j++){      
    	if(arr[i] == j){         
        	cnt++;        
        }    
    } //for j
  } //for i

8. 아, 최빈수의 카운트를 하려면 최빈수를 구할 배열 원소를 첫원소와 0부터 9를 비교하는 식으로 하는게 아니고, 

  최빈수를 구할 배열에서 첫 원소부터 마지막 원소까지를 0이랑 비교하고 0이랑 비교하는 동안에 배열에서 같은 횟수만큼 카운트를 해주면 되는구나!

-이 부분에서 고민을 많이 함.. i랑 j 순서만 살짝 바꾸면 됬었는데 생각이 잘 떠오르지 않음 . 배열 10개를 선언해서 같은 수가 나오면 해당 수를 그 만큼 넣어주고 10개 배열 길이를 비교해서 뽑아야 하나? 별의별 생각을 다 해봄...

 

728x90