[JAVA] 임시반장 정하기 - Array(1, 2차원 배열)

2023. 10. 23. 17:14·💡 Algorithm/인프런

public class INF0211 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[][] grid = new int[n+1][6];

        for(int i=1; i<=n; i++){
            for(int j=1; j<=5; j++){
                grid[i][j] = sc.nextInt();
            }
        }

        INF0211 inf = new INF0211();
        System.out.print(inf.solution(n, grid));
    }

    public int solution(int n, int[][] grid){
        int answer=0, max=0;

        for(int i=1; i<=n; i++){
            int cnt = 0;

            for(int j=1; j<=n; j++){
                for(int k=1; k<=5; k++){
                    if(grid[i][k] == grid[j][k]){
                        cnt++;
                        break;
                    }
                }
            }
            if(cnt > max){
                max = cnt;
                answer = i;
            }
        }

        return answer;
    }
}

 

풀이

for(int i=1; i<=n; i++){                 //1
    int cnt = 0;

    for(int j=1; j<=n; j++){              //2
        for(int k=1; k<=5; k++){          //3
            if(grid[i][k] == grid[j][k]){ //4
                cnt++;
                break;
            }
        }
    }
    if(cnt > max){                        //5
        max = cnt;
        answer = i;
    }
}

학생 1부터 루프 돌면서 나머지 학생의 반과 본인의 반이 같은지 비교하는 방법이다.

 

`cnt` - 같은 반인 학생 수

`max` - 같은 반인 학생 수의 최대

`answer` - 학생 번호

 

  1. 학생 1부터 본인 반과 나머지 학생들의 반을 비교하기 위함
  2. 나머지 학생을 비교하기 위함
  3. 1학년부터 5학년까지 루프를 돌기 위함
  4. 나와 다른 학생의 반이 같다면 카운트 증가
  5. 현재 학생의 cnt가 max보다 크다면 1등으로 값 세팅

 

 


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

 

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

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

[Java] 멘토링 - Array(1, 2차원 배열)  (0) 2024.11.14
[Java] 두 배열 합치기 - Two-Pointers Algorithm  (1) 2023.10.28
[Java] 등수구하기 - Array(1, 2차원 배열)  (0) 2023.10.24
[JAVA] 봉우리 - Array(1, 2차원 배열)  (0) 2023.10.22
[Java] 특정 문자 뒤집기 - String(문자열)  (0) 2023.10.21
[JAVA] 단어 뒤집기 - String(문자열)  (0) 2023.10.20
'💡 Algorithm/인프런' 카테고리의 다른 글
  • [Java] 두 배열 합치기 - Two-Pointers Algorithm
  • [Java] 등수구하기 - Array(1, 2차원 배열)
  • [JAVA] 봉우리 - Array(1, 2차원 배열)
  • [Java] 특정 문자 뒤집기 - String(문자열)
현주먹
현주먹
끄적끄적 개발.log
  • 현주먹
    현주먹의 개발로그
    현주먹
  • 전체
    오늘
    어제
    • 전체글 (162)
      • 👶🏻 CS (15)
        • Operating System (8)
        • Database (4)
        • Data Structure (2)
        • Software Engineering (1)
      • 💻 Dev (54)
        • Java & OOP (24)
        • Spring (4)
        • JPA (5)
        • Test Code (1)
        • Database (1)
        • JSP & Servlet (13)
        • Etc (6)
      • 💡 Algorithm (25)
        • 인프런 (9)
        • 백준 (16)
      • 🛠 DevOps & Tool (11)
        • Linux (4)
        • AWS (1)
        • Git (2)
        • Etc (4)
      • 📝 끄적끄적 (57)
        • 후기 및 회고 (5)
        • TDD, 클린 코드 with Java 17기 (3)
        • F-Lab (23)
        • 🖥️ 자바의 정석 (11)
        • 📖 Clean Code (3)
        • 항해99 코테 스터디 (11)
  • 블로그 메뉴

    • 🐈‍⬛ GitHub
    • TIL
  • 인기 글

  • 태그

    개발자취업
    항해99
    자바의신절판
    til
    코딩테스트준비
    자바의정석
    f-lab 후기
    JPA
    PostGreSQL함수
    ==와 equals()
    티스토리챌린지
    코테스터디
    에프랩
    에프랩 후기
    C
    NextSTEP
    TDD 클린 코드 with Java
    인프런 단어뒤집기
    로또 미션
    백준
    오라클
    객체지향
    99클럽
    jsp
    오블완
    백준10250
    F-Lab
    인프런 특정문자뒤집기
    개발자멘토링
    데브클럽
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
현주먹
[JAVA] 임시반장 정하기 - Array(1, 2차원 배열)
상단으로

티스토리툴바