하루에 한 문제

[프로그래머스 Summer/Winter Coding(~2018)] 숫자게임 -Java 본문

알고리즘/프로그래머스

[프로그래머스 Summer/Winter Coding(~2018)] 숫자게임 -Java

dkwjdi 2020. 12. 29. 20:54

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

 

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

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

programmers.co.kr

import java.util.Arrays;

class Solution {
	    public int solution(int[] A, int[] B) {
	        int answer = 0;
	        
	        Arrays.sort(A);
	        Arrays.sort(B);
	        
	        int aIdx=0;
	        int bIdx=0;
	        int size=A.length;
	        
	        while(true) {
	        	if(A[aIdx]<B[bIdx]) {
	        		answer++;
	        		aIdx++;
	        		bIdx++;
	        	}
	        	else bIdx++;
	        	
	        	if(aIdx==size || bIdx==size) break;
	        }
	        
	        return answer;
	    }
	}

 소요시간 : 10분

 

Lv3치고는 되게 간단한 문제입니다.

 

로직을 살펴보면

 

우선 배열 A,B를 정렬합니다.

 

5,1,3,7 -> 1,3,5,7

2,2,6,8 -> 2,2,6,8

 

A배열과 B배열의 인덱스를 각각 aIdx, bIdx 라고 지었습니다.

 

만약 A[aIdx]<B[bIdx] 라면 승점을 추가시키고, a,b 인덱스를 증가시킵니다.

만약 그 반대상황이라면 b의 인덱스만 증가시킵니다.

 

 

 

 

Comments