쌤리

순위 정렬, 랭킹 정렬 본문

자바 JAVA/자바 기초

순위 정렬, 랭킹 정렬

saml2l 2020. 4. 26. 22:54
  • 자바 수업에는 10명의 학생이 있다. 아래 배열에 각 학생의 점수가 입력되어 있다.
int[] score = {60, 34, 55, 100, 95, 76, 65, 90, 80, 87};
  • 순위를 매겨보자
class Main {
	public static void main(String[] args) {
		int[] scores = { 60, 34, 55, 100, 95, 76, 65, 90, 80, 87 };

		for (int i = 0; i < scores.length; i++) {
			int rank = 1;
			for (int j = 0; j < scores.length; j++) {
				if (scores[i] < scores[j]) {
					rank++;
				}
			}
		}
	}
}
  • 한번씩 비교 할 때마다 rank 값은 1로 초기화 돼야 한다.
  • j = 0, 0 부터 < scores 배열의 길이인 10까지, 즉 총 9번 반복 하면서 j의 값이 1씩 증가한다.
  • scores[0](i 의 값) 이 < scores [0](j의 값) 은 일단 패스. 그 다음을 보자
  • if (scores[0] (0번째 배열은 60점) < scores[1] (1번 배열은 34점) ) rank ++; 즉 60 점이 34점 보다 작으면 rank 가 하나 늘어나지만 여기서는 해당 X
  • 3번 배열과 비교해보자. scores[0] < score [3], 즉 60점 < 100점. 이 경우에는 조건에 맞기 때문에 rank 가 하나 늘어난다. 
  • 위와 같은 방식으로 반복하면서 옆 숫자와 비교 하다 보면 순위에 맞게 rank 가 증가한다. 
  • 이러한 방식으로 배열 길이인 scores.length - 1, 즉 9번을 반복하면 배열의 숫자들은 각각의 맞는 순위를 가지게 된다

※실행을 해보자!!

 

  • 역순으로 순위를 매기고 싶다면 비교 조건을 아래와 같이 하면 된다
if (scores[i] > scores[j])

'자바 JAVA > 자바 기초' 카테고리의 다른 글

매개변수, parameter  (0) 2020.04.27
생성자, constructor  (0) 2020.04.27
Bubble Sort, 버블 정렬, 거품정렬  (0) 2020.04.26
추상 클래스, abstract class  (0) 2020.04.24
클래스와 객체 Class & Object  (0) 2020.04.24
Comments