[알고리즘6] DAT 자료구조 이해하기
by 뱁새유니버스DAT 자료구조를 이해하기 위한 코드입니다.
package algorithm;
import java.util.Scanner;
public class Main {
// Scanner를 사용하여 사용자로부터 입력을 받습니다.
static Scanner sc = new Scanner(System.in);
// 폭탄의 정보를 담는 배열입니다.
static int arr[] = {3, 3, 2, 7, 5, 5, 7, 2, 1, 2, 5};
// dat 배열은 특정 값이 arr에 존재하는지를 빠르게 확인하기 위한 배열입니다.
static boolean dat[] = new boolean[20]; // [0] ~ [19]
// 주어진 target 값이 arr 배열 안에 존재하는지 확인하는 함수입니다.
static boolean isExist(int target) {
for (int i = 0; i < arr.length; i++) {
if (target == arr[i]) {
return true;
}
}
return false;
}
// arr 배열 안에서 주어진 target 값의 발생 횟수를 카운트하는 함수입니다.
static int countOccurrences(int target) {
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
count++;
}
}
return count;
}
public static void main(String[] args) {
// dat 배열을 초기화하는 부분입니다.
// arr 배열의 각 요소에 해당하는 dat 배열의 인덱스 값을 true로 설정합니다.
for (int i = 0; i < arr.length; i++) {
int key = arr[i];
dat[key] = true;
}
// 사용자로부터 계속 값을 입력받는 무한 루프입니다.
while (true) {
int target = sc.nextInt();
// 입력받은 target 값이 arr 배열 안에 존재하는 경우 'O'와 함께 발생 횟수를 출력합니다.
if (dat[target]) {
System.out.println("O");
System.out.println(target + " occurs " + countOccurrences(target) + " times.");
}
// target 값이 arr 배열 안에 존재하지 않는 경우 'X'를 출력합니다.
else {
System.out.println("X");
}
}
}
}
반응형
'IT' 카테고리의 다른 글
[알고리즘7] 문자열 입력받고 중복제거 및 오름차순 문자열 출력하기 (0) | 2023.09.19 |
---|---|
[알고리즘5] 색종이 붙이기 문제 (0) | 2023.09.19 |
자바 이클립스 디버깅 단축키 (0) | 2023.09.19 |
[알고리즘4] 2차원배열 주어진 좌표를 포함한 상하좌우 합이 최대인 좌표 찾기 문제 (0) | 2023.09.18 |
[알고리즘3] 상하좌우 찾기 문제 풀기 (0) | 2023.09.18 |
블로그의 정보
가슴이 웅장해지는 모든것
뱁새유니버스