본문 바로가기
코딩테스트/프로그래머스

[JAVA] Summer/Winter Coding(~2018) 숫자 게임

by 의정부핵꿀밤 2022. 2. 22.
728x90

https://programmers.co.kr/learn/courses/30/lessons/12987

 

코딩테스트 연습 - 숫자 게임

xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로

programmers.co.kr

 

풀이)

1. 2개의 배열을 모두 정렬한다

2. 그리고 A와 B모두 뒤에서부터 비교하는데 A의 인덱스를 기준으로 한다

3. 이 때 현재 B의 값이 A의 값보다 큰 경우에만 B의 인덱스를 다음으로 넘겨준다. 아닌 경우에는 B가 이기지 못한 거니까 B의 인덱스는 냅두고 그 앞의 A의 값과 비교하는 것이다!

 

 

정렬이랑 뒤에서부터 비교하는 거까지는 생각했는데 인덱스를 어떻게 할지 부분에서 헷갈려서 코드를 찾아봤다

근데 너무 간단해서 좀 허무했던 문제였다,,,ㅠ

 

 

 

자바 코드)

import java.util.*;

class Solution {
    public int solution(int[] A, int[] B) {
        int answer = 0;
        Arrays.sort(A);
        Arrays.sort(B);
        
        int bIndex = B.length - 1;

        for(int i=A.length-1;i>=0;i--) { //뒤에서부터 비교 -> B가 큰 경우에만 인덱스를 줄여주고 answer++
            if(B[bIndex]>A[i]) {
                answer++;
                bIndex--;
            }
        }
        return answer;
    }
}
728x90

댓글