1.
적용 알고리즘 개념 간단하게 설명하기
2.
문제 풀이를 위한 접근 방식(or 개념) 설명
// 1. 번호를 붙여 구분한 폰켓몬 배열 하나를 생성함 nums[i]
// 2. 새로운 배열 arr, j = nums[i] 값이 같을 때 arr[j]에 1 추가
// 3. arr[] 배열의 최댓값 구하기
Java
복사
기본 코드에 대한 설명…
import java.util.Scanner;
class arrayCondition {
//nums의 길이 구하기 (10,000 이하의 짝수)
public int numberPick(int num) {
num = (int) (Math.random() * 100000);
if (num % 2 == 0) {
return num;
} else {
return numberPick(num); //재귀
}
}
}
public class PhoneKetMon {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
numberPick(a); //numberPick함수로 배열의 길이 구하기
int[] arr = new int[a]; //포켓몬 담을 배열
int[] phoneK = new int[2000000]; //포켓몬 번호 추가할 배열.
int count = 0;
for (int k = 0; k < phoneK.length; k++) {
for (int j = 0; j < a.length; j++) {
int num1 = (int) (Math.random() * 2000000); //제한조건 : 1~20만 사이의 자연수
arr[j] = num1; //랜덤한 num1값 채우기
}
//j = arr[i] 값이 같을 때 [j]에 1 추가
if (arr[j] = phoneK[k]) {
phoneK[k] = count++;
}
}
}
}
Java
복사
4.
기타(문제 풀이에 어려웠던 점, 구현하고자 했는데 실패한 방식)
a.
해시 자료구조에 맞는 접근법으로 풀지 못한 것 같다.
⇒ 기본 개념부터 학습 후 예제 풀이 필요