✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺

    [알고리즘] 슬라이딩 윈도우 개념 및 문제

    슬라이딩 윈도우 사용하는 이유 예를 들어, { 1, 2, 3, 4, 5 } 라는 수열이 주어졌다고 봅시다. 여기서 부분 문자열 3씩 끊어 해당 부분 문자열 들 중에서 어느 부분이 제일 합이 큰지 알고 싶습니다. 그러면 두 개의 반복문을 이용하여 구할 수 있을 것입니다. package day220805.practice; public class Test { // 최댓값을 찾으려는 주어진 수열 static int[] arr = { 1, 2, 3, 4, 5 }; // 부분 문자열의 길이 static int P = 3; public static void main(String[] args) { // 최댓값 초기화 int max = Integer.MIN_VALUE; // 전체 인덱스를 돈다. for (int i = ..

    [BJ12891] DNA 비밀번호

    백준 - DNA 비밀번호 문제 링크 https://www.acmicpc.net/problem/12891 12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA” www.acmicpc.net 문제 입출력 4 2 GATA 1 0 0 1 2 문제 풀이 package day220805.practice; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.StringTokenizer;..

    [BJ21921] 블로그

    백준 - 블로그 문제 링크 https://www.acmicpc.net/problem/21921 21921번: 블로그 첫째 줄에 $X$일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다. 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다 www.acmicpc.net 문제 입출력 5 2 1 4 2 5 1 7 1 문제 풀이 package problem.BJ; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.StringTokenizer; /* * [입력] * N(블로그를 시작하..

    [알고리즘] Queue 개념 + java.util.Queue

    큐 (Queue) 개념 큐 란? : First In First Out 의 특징을 가지고 있는 선형적 자료구조 맛집에 가서 줄을 설 때를 생각하시면 됩니다. 먼저 들어온 사람이 제일 먼저 처리가 되고, 그 이후로 줄줄이 처리가 됩니다. 이러한 데이터 처리의 구조를 가진 자료구조를 큐 라고 합니다. 특징 큐는 선입선출(FIFO: First In First Out) 의 특징을 가지고 있습니다. 보통 BFS 를 구현할 때 많이들 사용됩니다. 또한, 제일 첫 요소를 나타내는 front 와 제일 마지막 요소를 나타내는 rear 라는 인덱스 키워드를 가지고 있습니다. 스택과 마찬가지로 연결 리스트로 구현될 수 있습니다. Java Queue API - LinkedList 클래스 사용 Stack 과는 다르게도 Queue..

    [알고리즘] Stack 개념 + java.util.Stack

    스택 (Stack) 개념 스택이란? : Last In First Out 의 특징을 가지고 있는 선형적 자료구조 마치 접시를 쌓아둔 듯한 자료구조입니다. 제일 밑에 있는 접시를 빼면 위의 있는 접시들이 흔들려 깨질 수가 있습니다. 따라서, 접시를 빼낼 때는 위부터 꺼내야합니다. 이와 같은 데이터 저장 구조를 가진 것을 바로 스택 이라고 합니다. 특징 스택은 후입선출(LIFO: Last In First Out) 의 특징을 가지고 있으며, 프로그래밍 언어에서 메서드 콜을 할 때 사용되어 집니다. 이를 Functional Call 이라고 합니다. 메서드를 호출할 때 스택을 사용하여 너무 많은 메서드가 쌓이다보면 스택 오버 플로우(overflow) 가 발생합니다. 스택은 배열이나 연결리스트를 이용하여 구현될 수 ..

    [알고리즘] 순열, 조합, 부분집합 + 구현

    순열 (Permutation) 개념 순열이란? : 순서를 고려하여 서로 다른 것들 중 몇 개를 뽑아 한 줄로 나열하는 것 자리의 순서를 고려합니다. 즉, 조합과는 다르게 1-2-3 과 2-3-1 을 다르게 봅니다. 구현 package day220804.practice; import java.util.Arrays; import java.util.Scanner; public class Permutation { static int N, K; static int[] numbers; static boolean[] isSelected; private static void perm(int cnt) { // 기저 조건 if (cnt == K) { System.out.println(Arrays.toString(numbe..