<div>import java.util.Collections;</div> <div>import java.util.Scanner;</div> <div>import java.util.Arrays;</div> <div>import java.util.List;</div> <div><br /></div> <div>public class Code {</div> <div><br /></div> <div><br /></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>public static void main(String[] args) </div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>int num1, num2, num3, num4, num5, sum, avg, max, min;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>Scanner keyboard = new Scanner(System.in);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("Enter the first number:");</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>num1 = keyboard.nextInt();</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("Enter the seond number:");</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>num2 = keyboard.nextInt();</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("Enter the third number:");</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>num3 = keyboard.nextInt();</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("Enter the fourth number:");</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>num4 = keyboard.nextInt();</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("Enter the fifth number:");</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>num5 = keyboard.nextInt();</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>keyboard.close();</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span><font color="#ff0000">int[] num = new int[5]; // array named num is declared with 5 variables</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>num[0] = num1;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>num[1] = num2;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>num[2] = num3;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>num[3] = num4;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>num[4] = num5;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>Arrays.sort(num);</font></div> <div><span class="Apple-tab-span" style="white-space: pre"><font color="#ff0000"> </font></span></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>int n1 = num[0];</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>int n2 = num[1];</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>int n3 = num[2];</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>int n4 = num[3];</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>int n5 = num[4];</font></div> <div><span class="Apple-tab-span" style="white-space: pre"><font color="#ff0000"> </font></span></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>List<Integer> index1 = Arrays.asList( n1, n2, n3, n4, n5);</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>int occurrences1 = Collections.frequency(index1, n1);</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span></font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>List<Integer> index2 = Arrays.asList( n1, n2, n3, n4, n5);</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>int occurrences2 = Collections.frequency(index2, n2);</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span> </font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>List<Integer> index3 = Arrays.asList( n1, n2, n3, n4, n5);</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>int occurrences3 = Collections.frequency(index3, n3);</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span> </font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>List<Integer> index4 = Arrays.asList( n1, n2, n3, n4, n5);</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>int occurrences4 = Collections.frequency(index4, n4);</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span> </font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>List<Integer> index5 = Arrays.asList( n1, n2, n3, n4, n5);</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>int occurrences5 = Collections.frequency(index5, n5);</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span> </font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>int [][] nums = new int [5][2];</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>nums [0][0] = n1;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>nums [1][0] = n2;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>nums [2][0] = n3;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>nums [3][0] = n4;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span>nums [4][0] = n5;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>nums [0][1] = occurrences1;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>nums [1][1] = occurrences2;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>nums [2][1] = occurrences3;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>nums [3][1] = occurrences4;</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>nums [4][1] = occurrences5;</font></div> <div><span class="Apple-tab-span" style="white-space: pre"><font color="#ff0000"> </font></span></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>int maxOccurrences = Math.max(Math.max(Math.max(Math.max(occurrences1, occurrences2),occurrences3),occurrences4),occurrences5);</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> </font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>for (int i = 0; i < nums.length; i++) {</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>for (int j = 0; j < nums[i].length; j++) {</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>if (nums[i][j] == maxOccurrences) {</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>int mode = nums [i][j-1];</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("Mode: " + mode);</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>}</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>}</font></div> <div><font color="#ff0000"><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>}</font></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span> </div> <div><span class="Apple-tab-span" style="white-space: pre"> </span> <span class="Apple-tab-span" style="white-space: pre"> </span>sum = (int)(num1 + num2 + num3 + num4 + num5);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>avg = (int)(sum/5);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>max = Math.max(Math.max(Math.max(Math.max(num1, num2),num3),num4),num5);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>min = Math.min(Math.min(Math.min(Math.min(num1, num2),num3),num4),num5);</div> <div><br /></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println(" ");</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("Sum:" + sum);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("Avg:" + avg);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("Max:" + max);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("Min:" + min);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>System.out.println("Median:" + num[2]);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>}</div> <div>}</div> <div><br /></div> <div><br /></div> <div><br /></div> <div><br /></div> <div>제가 짠 코드인데요... 갓 시작한 학생이라 아직 자바 2차원 배열이나 루프개념이나 이해가 안가는 부분이 있습니다.</div> <div>20~30시간정도 mode (최빈값; 가장 빈도가 많은 값)을 찾는 알고리즘을 만들기 위해서 끊임 없이 stack overflow를</div> <div>뒤졌는데도 해답이 안나와서 여쭙습니다.</div> <div><br /></div> <div>빨간색으로 되어져있는 부분이 최빈값을 찾아내는 알고리즘인데요.</div> <div>최빈값을 구하기는 했으나 문제되는 부분이 많이 있습니다..ㅠㅠ</div> <div><br /></div> <div>빨간 부분의 구조가 어떻게 되어있냐면,</div> <div>프로그램 사용자가 5가지의 숫자를 어떤 순서로던지 입력을 합니다. (예: 12, 16, 18, 12, 16)</div> <div>이렇게 입력이 된 숫자를 num이란 배열로 num[0]~num[4] 까지 최소값에서 최대값으로 정렬을 시켜주구요.</div> <div>ArrayList index1 에서 index5에 occurrences1~occurrences5 변수에 각 5가지의 숫자에 해당되는 빈수를 저장합니다.</div> <div>다시 num[0] ~ num[4]를 n1~n5 라는 변수에 저장을 시킵니다.</div> <div>n1~n5 변수를 nums라는 2차원배열의 첫번째 열에 차례대로 (최소값~최대값 순서로) 저장을 시켜주구요. (예: nums[0][0] = n1, nums[1][0] = n2)</div> <div>그리고 n1~n5변수의 빈수 (occurrences1~occurrences5)를 2차배열 두번째 열에 저장을 시켜주구요. (해당되는 변수의 오른쪽 열)</div> <div>그리고 occurrences1~occurrences5 변수중 가장 큰 값을 가진 변수를 maxOccurrences라는 변수에 저장합니다.</div> <div>그리고 그 maxOccurrences라는 변수에 저장되어져 있는 값을 </div> <div>맨 아래의 루프에 표시된것 처럼 nums [][] 2차원 배열에서 값을 찾은뒤 해당 되는 값이 존재하는 곳의 주소를 기억해서</div> <div>그 주소 (nums[i][j])를 토대로 왼쪽에 있는 숫자 (nums[i][j-1]) 를 최빈값(mode) 로 출력해주는데요.</div> <div><br /></div> <div>위 코드대로 돌렸을 시에 문제는 아래와 같습니다...</div> <div>1. 5가지의 숫자를 1,2,1,3,5라고 가정했을시 maxOccurrences는 2입니다. 2의 주소 두번째 열에서만 검색해야하는데 첫번째 열도 검색을 해버려서</div> <div> 만약에 최대빈수 = 유저가 입력한 값이 될시, 에러가 떠서 실행이 안됩니다..ㅠㅠ</div> <div><br /></div> <div>2. maxOccurrences를 불러올때, 1번과 같은 에러가 만약에 없을 시, 첫번째 행에서 중복값이 있을 경우에 하나의 값만 불러오면 되는데, 중복값을 모 두 불러옵니다.ㅠㅠ</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>예-> <table border="1" width="100%" cellpadding="3" cellspacing="0" bordercolor="#000000" style="border-style: solid; border-collapse: collapse"> <tbody> <tr> <td> 유저가 넣은 값</td> <td>빈도수 </td></tr> <tr> <td>1 </td> <td> 2</td></tr> <tr> <td> 1</td> <td> 2</td></tr> <tr> <td> 2</td> <td> 2</td></tr> <tr> <td> 2</td> <td> 2</td></tr> <tr> <td> 3</td> <td> 1</td></tr></tbody></table></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>최빈값 출력시: 1<br /><span class="Apple-tab-span" style="white-space: pre"> </span> 1<br /> 2<br /> 2</div> <div><br /></div> <div><br /></div> <div><br /></div> <div>위 두가지 문제점을 고칠수 있는 방법이 없을까요?</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.