2020-12-09 TIL
09 Dec 2020 | 로그포스 알고리즘2020-12-09 랭킹 매기기 원리
- 오늘 한 것
- Linux/CentOS 셸 스크립트
- 학원 비대면 수업 (다차원 배열 응용문제 풀이)
- 블로그 포스팅 (java day5, day6 정리)
- Javascript30 Tutorial day 22 (추후 포스팅 예정)
- 제어문 연습 - 홀짝게임 구현
-
오늘 배운 것
-
랭킹 매기기 원리
-
배열에 정수값이 3개 들어있다. 이 배열에 있는 값들을 비교하여 랭킹을 매겨야한다.
어떻게 할까?
정답은 동일한 배열이 하나 더 있다고 가정하는 것이다.
그렇다고 배열을 하나 더 만드는 것은 아니고 이중 for문을 활용한다.
처음에 랭크는 모두 1에서 시작한다.
A{ a, b, c} 이렇게 있다고 치면 A의 값들을 A’의 값들과 차례차례 비교한다.
A’{a, b, c} 여기서 중요한 것은 자신을 제외한 값과 비교할 것
만약 a가 b보다 작으면 a의 랭크는 1이 올라간다.
(반복)
연산이 끝난 후에는 1등, 2등, 3등의 랭킹이 매겨져있다.
코드로 풀어보자
int[] score = {23, 65, 89}; //비교하고자 하는 배열 int[] rank = new int[3]; //랭크를 저장할 배열 for(int i=0; i<score.length; i++){ rank[i]++; //int 배열의 초기값은 0이므로 1씩 추가 for(int j=0; j<score.length; j++){ if(score[i] < score[j]) rank[i]++; //작으면 랭크 1 추가 } //자신을 제외해야하므로 같으면 안됨 System.out.println(score[i]+", "+rank[i]); } /* 출력값 23, 3 65, 2 89, 1 */
-
-
- 내일 할 것
- 이것이 리눅스다 Chapter 08 원격지 시스템 관리 끝내기
- Javascript30 Tutorial Day 23
- 블로그 포스팅 (Java Day 7, 8)
- 배열 응용문제 숙제 조금?🤦♂️
- 끝으로
코딩을 잘하려면 수학적으로 머리가 잘 돌아가야하나보다…어렵🙄
오늘의 한 줄 총평 : 수학시간
- 참고 자료
null