오늘의 취준/오늘의 코테

[JAVA] 알고리즘 문제풀이 입문 2-11,12 <RE>

gogoem 2023. 5. 26. 16:36
728x90

강의: https://inf.run/w779

 

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 - 인프런 | 강의

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com

나중에 강의 도움 없이 다시 풀어보기

 

2-11번

import java.util.Scanner;
 
public class Main {
  public int solution(int n, int[][] arr){
    int answer = 0;
    int max = Integer.MIN_VALUE;

    for(int i = 0; i < n; i++){
      int now = 0;
      for(int j = 0; j < n; j++){
        for(int k = 0; k < 5; k++){
          if(arr[i][k] == arr[j][k]){
            now++;
            break;
          }
        }
      }
      if(now > max){
        max = now;
        answer = i+1;
      }
    }
    return answer;
  }

  public static void main(String[] args){
    Main m = new Main();
    Scanner in = new Scanner(System.in);

    int num = in.nextInt();
    int[][] arr = new int[num][5];
    for(int i = 0; i < num; i++){
      for(int j = 0; j < 5; j++){
          arr[i][j] = in.nextInt();
      }
    }
    in.close();

    System.out.print(m.solution(num, arr));
  }
}

 

 

2-12번

import java.util.Scanner;
 
public class Main {
  public int solution(int n, int m, int[][] arr){
    int answer = 0;
    for(int i = 1; i <= n; i++){
      for(int j = 1; j <= n; j++){
        int count = 0;
        for(int k = 0; k < m; k++){
          int pi = 0;
          int pj = 0;
          for(int s = 0; s < n; s++){
            if(arr[k][s] == i)  pi = s;
            if(arr[k][s] == j)  pj = s;
          }
          if(pi<pj) count++;
        }
        if(count == m){
          answer++;
        }
      }
    }
    return answer;
  }

  public static void main(String[] args){
    Main t = new Main();
    Scanner in = new Scanner(System.in);

    int n = in.nextInt();
    int m = in.nextInt();
    int[][] arr = new int[m][n];
    for(int i = 0; i < m; i++){
      for(int j = 0; j < n; j++){
          arr[i][j] = in.nextInt();
      }
    }
    in.close();

    System.out.print(t.solution(n, m, arr));
  }
}