날짜 | 분류 | 번호 | 알고리즘 분류 | 링크 |
21-03-13 | 프로그래머스 | 12987 | 그리디 | programmers.co.kr/learn/courses/30/lessons/12987 |
문제 요약
- A팀 N명과 B팀 N명이 각각 무작위로 자연수를 부여받았을 때, B팀의 최대 승점 구하기
- 게임 규칙
- A팀 한명과 B팀 한명이 서로 수를 비교하여 큰 수를 가진 팀에 +1점, 동일할 경우 둘 다 0점
- 모든 사람은 한번만 출전 가능하며, 서로 동일한 숫자를 가질 수 있음
- B팀은 A팀의 출전 순서를 앎
풀이
- A팀과 B팀을 카드 숫자에 따라 오름차순 정렬
- A팀을 기준으로 반복문을 돌리면서 현재 A팀 출전 숫자보다 큰 숫자를 가진 B팀의 팀원이 나올 때까지 b의 인덱스를 증가
비고
- 레벨 3인데 너무 허무하게 풀려서 당황 ㅎ
더보기
package SummerWinterCoding2018.P12987_숫자게임;
import java.util.Arrays;
public class Solution {
public static int solution(int[] A, int[] B) {
int answer = 0;
int N = A.length;
Arrays.sort(A);
Arrays.sort(B);
int b = 0;
for (int a = 0; a < N; a++) {
while(b < N && A[a] >= B[b]) {
b++;
}
if(b >= N)
break;
b++;
answer++;
}
return answer;
}
public static void main(String[] args) {
// int[] A = { 5, 1, 3, 7 };
// int[] B = { 8, 2, 6, 2 };
int[] A = {2,2,2,2};
int[] B = {1,1,1,1};
System.out.println(solution(A, B));
}
}
'알고리즘왕 > Programmers' 카테고리의 다른 글
[프로그래머스/42890/JAVA] 후보키 (0) | 2021.03.29 |
---|---|
[프로그래머스/60057/JAVA] 문자열 압축 (0) | 2021.03.29 |
[프로그래머스/42892/JAVA] 길 찾기 게임 (0) | 2021.03.29 |
[Programmers/72413/JAVA] 합승 택시 요금 (0) | 2021.03.25 |
[Programmers/60057/JAVA] 문자열 압축 (0) | 2021.03.25 |