안녕하세요
이번 포스팅은 Cos Pro 1급 Java 5차 기출 문제 중 5번 문제인 몬스터 잡기 문제를 풀어보도록 하겠습니다.
□ 문제설명
XX게임에선 캐릭터는 자신과 공격력이 같거나 자신보다 공격력이 작은 몬스터에게 이깁니다. 내가 가진 캐릭터가 최대 몬스터 몇 마리를 이길 수 있는지 구하려 합니다. 단, 한 캐릭터는 한 번만 싸울 수 있습니다.
예를 들어, 세 몬스터의 공격력이 각각 [1, 4, 3]이고, 내가 가진 두 캐릭터의 공격력이 각각 [1, 3]이라면 첫 번째 캐릭터는 첫 번째 몬스터와, 두 번째 캐릭터는 세 번째 몬스터와 싸워서 이길 수 있습니다. 따라서 이길 수 있는 몬스터 수는 최대 2마리입니다.
모든 몬스터의 공격력을 담은 배열 enemies, enemies의 길이 enemies_len, 내가 가진 모든 캐릭터의 공격력을 담은 배열 armies, armies의 길이 armies_len가 매개변수로 주어질 때, 내 캐릭터로는 최대 몬스터 몇 마리를 이길 수 있는지 return 하도록 solution 함수를 작성해주세요.
□ 매개변수 설명
모든 몬스터의 공격력을 담은 배열 enemies, enemies의 길이 enemies_len, 내가 가진 모든 캐릭터의 공격력을 담은 배열 armies, armies의 길이 armies_len가 solution 함수의 매개변수로 주어집니다.
- 몬스터 수는 1마리 이상, 500마리 이하입니다.
- 각 몬스터의 공격력은 1 이상 100 이하입니다.
- 내가 가진 캐릭터 수는 1개 이상 500개 이하입니다.
- 각 캐릭터의 공격력은 1 이상 100 이하입니다.
□ return 값 설명
내가 가진 캐릭터로는 최대 몬스터 몇 마리를 이길 수 있는지 return 해주세요.
□ 예시
enemies | enemies_len | armies | armies_len | return | |
예시 #1 | [1, 4, 3] | 3 | [1, 3] | 2 | 2 |
예시 #2 | [1, 1, 1] | 3 | [1, 2, 3, 4] | 4 | 3 |
□ 예시설명
입출력 예 #1
문제에 나온 예와 같습니다.
입출력 예 #2
캐릭터를 어떻게 보내도 모든 몬스터를 이길 수 있습니다.
※ 문제 접근 방식
(1) 내가 가진 캐릭터 배열을 기준으로 순환합니다.
(2) 배열 안에서 몬스터 배열을 순회하며 내가 가진 캐릭터 배열의 값이 몬스터 값보다 더 크거나 같은 수가 있는지 비교합니다.
(3) Math.max 함수를 이용하여 더 큰 값을 구합니다.
import java.util.*;
class Main {
public int solution(int[] enemies, int[] armies) {
// 여기에 코드를 작성해주세요.
int answer = 0;
for(int i = 0; i < armies.length; i++) {
int n = 0;
for(int j = 0; j < enemies.length; j++) if(armies[i] >= enemies[j]) n++;
answer = Math.max(answer, n);
}
return answer;
}
public static void main(String[] args) {
Main sol = new Main();
int[] enemies1 = {1, 4, 3};
int[] armies1 = {1, 3};
int ret1 = sol.solution(enemies1, armies1);
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println("solution 메소드의 반환 값은 " + ret1 + " 입니다.");
int[] enemies2 = {1, 1, 1};
int[] armies2 = {1, 2, 3, 4};
int ret2 = sol.solution(enemies2, armies2);
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println("solution 메소드의 반환 값은 " + ret2 + " 입니다.");
}
}
'코딩테스트 > Cos Pro 1급 Java' 카테고리의 다른 글
[Cos Pro 1급 java] [6차] 문제1) 꽃피는 봄이 언제 오나요 (0) | 2021.03.22 |
---|---|
[Cos Pro 1급 java] [5차] 문제6) p진법 to q진법 (0) | 2021.03.22 |
[Cos Pro 1급 java] [4차] 문제10) 소수의 세제곱이 몇개가 있나요 - 에라스토테네스의 체 사용 (0) | 2021.03.22 |
[Cos Pro 1급 java] [3차] 문제5) 전광판 문구 출력 (0) | 2021.03.17 |
[Cos Pro 1급 java] [3차] 문제4) 중복 문자열 이어붙이기 (0) | 2021.03.17 |
댓글