문제
코딩테스트 연습 - 숫자 게임
xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로
programmers.co.kr
풀이
내 풀이는 다음과 같다
- A와 B 배열을 미리 정렬
- 인덱스 1 부터 시작하여 A와 B의 원소를 비교
- B가 크다면 카운트를 1 올리고 인덱스를 +1
- 그렇지 않다면 B의 인덱스만 1 올리고 다시 2번으로
- B의 인덱스 끝에 도달한다면 종료
A의 순서가 어떻든지 간에 B의 순서 또한 우리가 정할 수 있기 때문에 A의 순서는 중요하지 않기 때문에 배열을 크기 순으로 정렬이 가능
그래서 A와 B를 크기 순으로 정렬하면 인덱스만 늘려가며 편하게 비교할 수 있다
나는 인덱스 생각하기가 귀찮아서 내림차순으로 정렬 후 배열에서 pop 해주었다
코드
function solution(A, B) {
var answer = 0;
A.sort((a, b) => b-a);
B.sort((a, b) => b-a);
for(let i=A.length-1; i>=0&& B.length; i--){
let temp = B.pop();
while(A[i] >= temp){
temp = B.pop();
}
if(A[i] < temp) answer++;
}
return answer;
}
'Algorithm > 문제' 카테고리의 다른 글
programmers. 거스름돈 (0) | 2021.06.29 |
---|---|
백준 readline을 이용한 입/출력 (0) | 2021.06.28 |
programmers. 110 옮기기 (0) | 2021.06.25 |
programmers. 최솟값 만들기 (0) | 2021.06.23 |
programmers. N개의 최소공배수 (0) | 2021.06.22 |