[Java] 등수구하기 - Array(1, 2차원 배열)

2023. 10. 24. 23:43·💡 Algorithm/인프런

문제

N명의 학생의 국어점수가 입력되면 각 학생의 등수를 입력된 순서대로 출력하는 프로그램을 작성하세요.

같은 점수가 입력될 경우 높은 등수로 동일 처리한다.

즉 가장 높은 점수가 92점인데 92점이 3명 존재하면 1등이 3명이고 그 다음 학생은 4등이 된다.

public class INF0208 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] score = new int[n];

        for (int i = 0; i < n; i++) {
            score[i] = sc.nextInt();
        }

        INF0208 inf = new INF0208();
        int[] rank = inf.solution(score);
        for (int i : rank) {
            System.out.print(i + " ");
        }
    }

    public int[] solution(int[] score) {
        int[] rank = new int[score.length];

        int cnt = 0;
        for (int i = 0; i < score.length; i++) {
            cnt = 1;
            for (int j = 0; j < score.length; j++) {
                if(score[i] < score[j]) {
                    cnt++;
                }
            }
            rank[i] = cnt;
        }
        return rank;
    }
}

 

풀이

for (int i = 0; i < score.length; i++) { // 1
    cnt = 1;                             // 2
    for (int j = 0; j < score.length; j++) { // 3
        if(score[i] < score[j]) {            // 4
            cnt++;                           // 4
        }
    }
    rank[i] = cnt;                           // 5
}
  1. 등수를 입력하기 위한 루프를 돈다.
  2. 처음에는 1등으로 초기화 한다.
  3. 남은 점수들을 비교하기 위해 루프를 돈다.
  4. 다른 점수들이 현재 점수보다 크다면 등수를 하나씩 미룬다.
  5. 최종 등수를 본인의 배열 자리에 입력한다. = for i 루프의 끝에 둔 이유

 

 


인프런 - 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 강의에 나오는 알고리즘 문제입니다.

 

저작자표시 비영리 (새창열림)

'💡 Algorithm > 인프런' 카테고리의 다른 글

[Java] 매출액의 종류  (1) 2024.11.27
[Java] 멘토링 - Array(1, 2차원 배열)  (0) 2024.11.14
[Java] 두 배열 합치기 - Two-Pointers Algorithm  (0) 2023.10.28
[JAVA] 임시반장 정하기 - Array(1, 2차원 배열)  (0) 2023.10.23
[JAVA] 봉우리 - Array(1, 2차원 배열)  (0) 2023.10.22
[Java] 특정 문자 뒤집기 - String(문자열)  (0) 2023.10.21
'💡 Algorithm/인프런' 카테고리의 다른 글
  • [Java] 멘토링 - Array(1, 2차원 배열)
  • [Java] 두 배열 합치기 - Two-Pointers Algorithm
  • [JAVA] 임시반장 정하기 - Array(1, 2차원 배열)
  • [JAVA] 봉우리 - Array(1, 2차원 배열)
현주먹
현주먹
대구 불주먹 출신 현주먹의 개발.log
  • 현주먹
    현주먹의 개발로그
    현주먹
  • 전체
    오늘
    어제
    • 전체글 (178)
      • 👶🏻 CS (15)
        • Operating System (7)
        • DB (5)
        • Data Structure (2)
        • Software Engineering (1)
      • 💻 Dev (54)
        • Java & OOP (24)
        • Spring (4)
        • DB&JPA (6)
        • Test Code (1)
        • JSP & Servlet (13)
        • Etc (6)
      • 💡 Algorithm (25)
        • 인프런 (9)
        • 백준 (16)
      • 🛠 DevOps & Tool (11)
        • Linux (4)
        • AWS (1)
        • Git (2)
        • Etc (4)
      • 📝 끄적끄적 (73)
        • 후기 및 회고 (10)
        • TDD, 클린 코드 with Java 17기 (3)
        • F-Lab (23)
        • 🖥️ 자바의 정석 (11)
        • 📖 Clean Code (3)
        • 항해99 코테 스터디 (11)
        • 📖 가상 면접 사례로 배우는 대규모 시스템 설계 .. (11)
  • 블로그 메뉴

    • 🐈‍⬛ GitHub
    • TIL repository
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 태그

    99클럽
    F-Lab
    데브클럽
    인프런 특정문자뒤집기
    티스토리챌린지
    jsp
    TDD 클린 코드 with Java
    코딩테스트준비
    개구리책
    개발자취업
    자바의정석
    항해99
    C
    개발자멘토링
    로또 미션
    에프랩 후기
    NextSTEP
    에프랩
    2025스프링캠프
    til
    JPA
    ==와 equals()
    오블완
    코테스터디
    오라클
    f-lab 후기
    백준
    객체지향
    자바의신절판
    jsp 2.3 웹 프로그래밍: 기초부터 중급까지
  • hELLO· Designed By정상우.v4.10.2
현주먹
[Java] 등수구하기 - Array(1, 2차원 배열)
상단으로

티스토리툴바