전체보기

    [알고리즘] 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..

    [TC1101] [그리디] 모험가 길드

    🚩 문제 설명 한 마을에 모험가가 N명 있습니다. 모험가 길드에서는 N명의 모험가를 대상으로 '공포도'를 측정했는데, '공포도'가 높은 모험가는 쉽게 공포를 느껴 위험 상황에서 제대로 대처할 능력이 떨어집니다. 모험가 길드장인 동빈이는 모험가 그룹을 안전하게 구성하고자 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 여행을 떠날 수 있도록 규정했습니다. 동빈이는 최대 몇 개의 모험가 그룹을 만들 수 있는지 궁금합니다. 동빈이를 위해 N명의 모험가에 대한 정보가 주어졌을 때, 여행을 떠날 수 있는 그룹 수의 최댓값을 구하는 프로그램을 작성하세요. ⏱️ 시간 복잡도 ▪ O(N^2) ◾ 모험을 떠날 수 있는 그룹의 최대를 반환해야합니다. ✅ 입출력 변수 설명 N: 모험가의 수 arr..

    [BJ1244] 스위치 켜고 끄기

    백준 - 스위치 켜고 끄기 문제 링크 https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 문제 입력 1 8 0 1 0 1 0 0 0 1 2 1 3 2 3 1 0 0 0 1 1 0 1 문제 입력 2 8 0 0 0 0 0 0 0 0 8 1 2 1 3 1 4 1 5 2 2 2 3 2 4 2 5 0 1 1 1 0 1 1 0 문제 풀이 import java.io.BufferedReader; import java.io.FileInputStream; im..

    [BJ2309] 일곱 난쟁이

    🚩 문제 설명 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net ⏱️ 시간 복잡도 ▪ O(N^2) ◾ 일곱 난쟁이가 아닌 두 명을 골라내야합니다. ◾ 일곱 난쟁이의 키의 합은 총 100 입니다. ◾ 출력은 오름차순이 되어야 합니다. ✅ 입출력 변수 설명 arr: 난쟁이들의 키 배열 (총 9개) return ➡️ 오름차순으로 일곱 난쟁이의 키를 출력 ✔️ 예제 1 20 7 23 19 10 15 25 8 13 7 8 10 13 19 20 23 📑 문제 풀이 ..

    Java Lambda식 + Comparable 및 Comparator 인터페이스

    Lambda 개요 람다를 알기 이전에 우리는 Funtional Interface 에 대해서 짚고 넘어갈 필요가 있습니다. Funtional Interface 란 재정의될 추상 메서드가 딱 하나뿐인 인터페이스를 이릅니다. 이는 Single Abstract Method (SAM) 라기도 하며, 아주 구체적이고 전문적인 기능을 하는 메서드를 만들고 싶을 때 사용합니다. https://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 docs.oracle.com 우리가 알아볼 Comparable 인터페이스가 그런 형식입니다. 이게 근데 람다와 무슨 관련이 있을까요? 바로 sorting 을 하기 위해 Comparable 를 사용할 때, Comparator 인터페이스를..