[백준] 1562번: 계단 수
📌 문제 https://www.acmicpc.net/problem/1562 📌 설명 비트필드를 통한 DP를 통해 해결하였다. 3차원 DP 배열을 선언한 후, 길이가 1인 경우에 대하여 초기화를 진행했다. n이 100 이하이고, 비트필드의 최댓값은 1023이므로 삼중 for문을 통해 충분히 해결 가능하다. for문을 순회하며 값이 존재하는 경우 계...
📌 문제 https://www.acmicpc.net/problem/1562 📌 설명 비트필드를 통한 DP를 통해 해결하였다. 3차원 DP 배열을 선언한 후, 길이가 1인 경우에 대하여 초기화를 진행했다. n이 100 이하이고, 비트필드의 최댓값은 1023이므로 삼중 for문을 통해 충분히 해결 가능하다. for문을 순회하며 값이 존재하는 경우 계...
📌 문제 https://www.acmicpc.net/problem/1799 📌 설명 9663번: N-Queen 문제와 유사한 문제이다. 역시 백트래킹으로 해결하는 문제이고, 시간 초과가 발생하지 않게 효과적으로 구현하는 것이 목적이다. 핵심 아이디어는 ‘서로 다른 두 비숍은 같은 대각선 상에 위치할 수 없다.’이다. 처음에는 비숍이 위치할 수 ...
📌 문제 https://www.acmicpc.net/problem/16724 📌 설명 주어진 지도의 사이클의 개수를 찾는 문제이다. 각 노드에 대하여 DFS를 수행하여 사이클을 찾는다. DFS를 수행 후 리턴될 때 visited[i][j]을 -1로 설정한다. 이는 추후 DFS를 수행 시 이미 생성된 사이클의 노드에 접근하지 못하게 하는 역할을 한...
📌 문제 https://www.acmicpc.net/problem/2533 📌 설명 DFS로 트리를 순회하며 가능한 얼리 어답터의 수를 구하는 문제이다. 최소 얼리 어답터의 수를 구하기 위해 DP를 사용한다. 먼저 노드 연결 관계를 vector 배열 nodes에 저장한다. DFS로 순회하며 DP 배열을 초기화한다. 사용할 DP 배열은 이차원 배...
📌 문제 https://www.acmicpc.net/problem/10775 📌 설명 각 비행기에 대하여 가능한 게이트를 확인하는 방법(O(GP))은 시간 초과가 발생한다. 분리 집합을 통해 비행기가 들어갈 수 있는 게이트를 계속 초기화를 해야 한다. 구체적인 방법은 다음과 같다. 1. 각 게이트의 부모를 자신의 번호로 설정한다. 2. 비행기...
📌 Lombok이란? Lombok 이란 어노테이션 기반으로 자바 코드를 자동으로 생성해주는 라이브러리이다. 이를 통해 코드가 간결해지며 가독성을 향상시킬 수 있다. 또한 반복적으로 작성되는 보일러플레이트 코드가 감소하게 된다. 이는 개발자가 핵심 비즈니스 로직에 더 집중할 수 있도록 하는 효과를 가져오며, 유지보수가 쉬워진다. 실제로 Lomb...
📌 문제 https://www.acmicpc.net/problem/1655 📌 설명 수들을 순차적으로 받으면서 각 반복마다 수열의 중앙값을 출력하는 문제이다. 처음에 생각한 방법은 우선순위 큐나 set 자료구조를 통해 최대/최소값을 빠르게 찾은 다음, 선형적으로 탐색하여 중앙값을 찾는 방법이었다. 결과적으로 이 방법은 TLE이다. 현재 원소의 수...
📌 k6란? k6 는 Grafana Labs에서 개발한 오픈소스 성능 테스트 도구이다. 다양한 부하 테스트를 수행할 수 있으며, 테스트 시나리오는 JavaScript 또는 TypeScript로 작성되어 비교적 쉽게 작성할 수 있다. Go 언어로 작성되어 높은 성능을 보인다. 또한 다른 도구들에 비해 직관적이며 간단하다. 테스트 결과를 터미널이 출력하...
📌 JPQL이란? JPQL(Java Persistence Query Language) 는 JPA에서 사용하는 객체 지향 쿼리 언어이다. SQL을 추상화한 쿼리 언어이며, SQL과 비슷한 문법을 가지지만 SQL은 테이블을 대상으로 쿼리를 작성하는 반면 JPQL은 엔티티를 대상으로 쿼리를 작성한다. JPA에서 제공하는 기본 메서드로 복잡한 조건을 가진...
📌 GC(Garbage Collector)란? Garbage Collector란 JVM이 Heap 영역에서 더 이상 사용되지 않는 객체를 자동으로 탐지하고 해당 메모리를 회수하는 메모리 관리 기능을 의미한다. 따라서 개발자가 직접 메모리 해제를 하지 않아도 된다. 📌 JVM에서 Heap 메모리 구조 Young Generation ...