Archive

2020-12-09 TIL

|

2020-12-09 랭킹 매기기 원리


  • 오늘 한 것
    1. Linux/CentOS 셸 스크립트
    2. 학원 비대면 수업 (다차원 배열 응용문제 풀이)
    3. 블로그 포스팅 (java day5, day6 정리)
    4. Javascript30 Tutorial day 22 (추후 포스팅 예정)
    5. 제어문 연습 - 홀짝게임 구현

  • 오늘 배운 것

    1. 랭킹 매기기 원리

      • 배열에 정수값이 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
        */
        

  • 내일 할 것
    1. 이것이 리눅스다 Chapter 08 원격지 시스템 관리 끝내기
    2. Javascript30 Tutorial Day 23
    3. 블로그 포스팅 (Java Day 7, 8)
    4. 배열 응용문제 숙제 조금?🤦‍♂️

  • 끝으로

코딩을 잘하려면 수학적으로 머리가 잘 돌아가야하나보다…어렵🙄

오늘의 한 줄 총평 : 수학시간


  • 참고 자료

null