초기화된 (값이 입력된) 배열이 있을 때, 그 값들 끼리 순위를 매기는 알고리thm 을 보자
아래 (예제)를 보면 점수가 들어있는 5칸 짜리 배열이 있고,
크기가 같은 새 배열 rank[] 을 하나 생성한다.
초기화 안 했을 시, 기본 배열의 초기값은 전부 {0, 0, 0, 0, 0} 이다
그리고 [ i ] 와 [ j ] 를 2중 for 문으로 돌려서
score[ i ] < score [ j ]
각각 전부 비교를 한 다음에, 값이 작을 경우 같은 주소의 rank[ i ]에 값을 증가시킨다.
그러면 같은 값이 있지 않으면 0 1 2 3 각각 등수가 rank [] 에 저장될 것이고
보통 등수는 1 2, 3, 4 으로 표기하기때문에 출력할 때는 rank 에 있는 값에 '1'을 더하여 출력하면 순위가 된다.
// 순위 알고리즘
// 1. 배열과 과 같은 크기(길이)의 배열을 하나 더 만든다.
// 2. 각 주소의 값을 1로 초기화 한 후, 기존 배열의 값을 전부 하나씩 비교하여 작으면 rank 배열의 그 위치의 값에 '+1'을 해주면 된다
int[] score = {90,87,100,95,80};
int[] rank = new int[score.length];
for(int i=0; i<score.length; i++) {
for(int j=0; j<score.length; j++) {
if(score[i] < score[j])
rank[i]++;
}
System.out.println(score[i]+"점\t"+(rank[i]+1)+" 등");
}
'JAVA 줘? 잡아줘!' 카테고리의 다른 글
[Java]Day034 : Method 쓰는 법 (매우 기초) (0) | 2023.09.07 |
---|---|
[Java]Day033 : "Method" 너는 누구인가? 메서드? (0) | 2023.09.07 |
[Java]Day031 : for 문 의 차원 뒤바꾸기 (0) | 2023.09.05 |
[Java]Day030 : 다중 for문의 오해 ; 다차원 배열 출력 (0) | 2023.09.04 |
[Java]Day029 : enum. 열거형 타입 선언 (0) | 2023.09.04 |