분류 전체보기 21

[백준] 11724: 연결 요소의 개수 JAVA

링크: https://www.acmicpc.net/problem/11724풀이과정이 문제는 DFS/BFS를 사용해서 푸는 문제이다. DFS/BFShttps://jaeyeong04.tistory.com/11 [백준] 1260: DFS와 BFS JAVA링크: https://www.acmicpc.net/problem/1260풀이과정이 문제에서 필요한 스킬은 "그래프 표현"과 "dfs/bfs 구현"이다. 그래프 표현그래프는 adjacency list 또는 adjacency matrix로 표현이 가능하다. 아래 사진을 참jaeyeong04.tistory.com위 링크에서 dfs&bfs 구현 방법을 확인할 수 있다. 풀이 핵심input을 받고 graph라는 2차원 배열과, visited라는 1차원 배열 선언 후 값..

백준 2026.03.30

[백준] 2630: 색종이 만들기 JAVA

링크: https://www.acmicpc.net/problem/2630풀이과정이 문제는 분할 정복(Divide and Conquer)과탐색을 사용해서 푸는 문제이다. 분할 정복분할 정복이란 하나의 큰 문제를 여러가지로 나눠서 해결하는 것이다. 이 문제는 초반에 NxN 정사각형을 주고 조건에 만족할 때 까지 N/2 x N/2 정사각형 4개로 나눠서 해결한다. 이를 구현하기 위해 재귀함수를 사용한다. (재귀함수 구현 시, stack overflow error가 나지 않도록 주의한다 = 함수 무한 호출 주의) 풀이 핵심입력값을 가져오고, blueCnt와 whiteCnt라는 파란색과 흰색 종이 수를 저장하는 변수를 선언한다.checkColor라는 함수를 선언하여, 배열의 모든 요소가 같은 값을 갖는지에 대한 ..

백준 2026.03.22

[백준] 18870: 좌표 압축 JAVA

링크: https://www.acmicpc.net/problem/18870풀이과정이 문제는 정렬/HashMap을 사용해서 푸는 문제이다. 풀이 핵심BufferedReader를 통해 N을 받고, 크기가 N인 배열 arr과 sortedArr을 선언하고, string tokenizer를 사용해서 두 배열을 채운다.Arrays.sort(sortedArr)로 sortedArr을 정렬한다.HashMap을 만든다. HashMap을 사용하는 이유는 배열에서 탐색을 해버리면 시간 초과가 뜨기 때문이다. key는 sortedArr의 element들이고, value는 rank이다. rank를 따로 선언하는 이유는 중복 값들이 있을 때를 대비하기 위함이다. HashMap의 key 중복을 확인하고, 중복이 있을 경우 for l..

백준 2026.03.21

[백준] 11726: 2 x n 타일링 JAVA

링크:https://www.acmicpc.net/problem/11726풀이과정이 문제는 Dynamic Programming (DP)를 사용해서 푸는 문제이다. 풀이 핵심일단 타일이 늘어나면 이전 크기의 타일 왼쪽과 오른쪽에 세로로 2x1 타일을 놓는 방식을 사용할 수 있기 때문에 DP 문제라고 생각했다. (n=4라면 n=3에서 구한 타일 배치 방식의 왼쪽과 오른쪽에 세로 타일을 하나 추가하는 식)직접 타일을 그려보며 점화식을 찾았다 (아래 사진 참고)점화식을 사용하여 코드 구현 최종 코드import java.util.*;import java.lang.*;import java.io.*;// The main method must be in a class named "Main".class Main { ..

백준 2025.12.18

[백준] 9095: 1, 2, 3 더하기 JAVA

링크:https://www.acmicpc.net/problem/9095풀이과정이 문제는 Dynamic Programming(DP) 을 사용해서 푸는 문제이다. DP하나의 큰 문제를 여러개의 작은 문제로 나눠서 해결하는 것. 한 값을 이 전에 구해놓은 값들을 사용하여 구할 수 있을 때 사용한다. 풀이 핵심1, 2, 3, 4, ... 를 순서대로 적으며 점화식 찾기dp[4]의 경우 1+dp[3], 2+dp[2], 3+dp[1] 이런 식으로 된다.점화식은 dp[i] = dp[i-1] + dp[i-2] + dp[i-3]이다. 이를 코드로 구현한다.최종 코드import java.util.*;import java.lang.*;import java.io.*;// The main method must be in a c..

백준 2025.12.17

[백준] 2606: 바이러스 JAVA

링크:https://www.acmicpc.net/problem/2606풀이과정이 문제는 BFS/DFS를 사용해서 푸는 문제이다. BFS/DFS각각의 구현은 아래 링크를 참고하자https://jaeyeong04.tistory.com/11 [백준] 1260: DFS와 BFS JAVA링크: https://www.acmicpc.net/problem/1260풀이과정이 문제에서 필요한 스킬은 "그래프 표현"과 "dfs/bfs 구현"이다. 그래프 표현그래프는 adjacency list 또는 adjacency matrix로 표현이 가능하다. 아래 사진을 참jaeyeong04.tistory.com 풀이 핵심일단 나는 BFS 쪽 구현에 더 약한 것 같아 연습을 위해 BFS로 구현을 하였다.주어진 input을 사용하여 ad..

백준 2025.12.16

[백준] 1764: 듣보잡 JAVA

링크: https://www.acmicpc.net/problem/1764풀이과정이 문제는 이분탐색 or HashSet을 사용해서 푸는 문제이다. 이분탐색이 문제에서 선형탐색을 한다면 O(NM) > 2초 (2억번의 연산)이 되어 이분탐색을 사용해야한다. 이분탐색의 시간복잡도는 O(log M)이되는데, 이걸 N번 반복하여 O(N logM)이 된다 (구현에 따라 O(M logN). HashSet자바에서 사용하는 자료구조로 요소간 중복이 불가하며, 빠른 탐색, 삽입, 삭제가 장점이다 {각각 평균적으로 O(1)}.최종 코드//이분탐색import java.util.*;import java.lang.*;import java.io.*;// The main method must be in a class named "Ma..

백준 2025.12.12

[백준] 2178: 미로 탐색 JAVA

링크:https://www.acmicpc.net/problem/2178풀이과정이 문제는 BFS를 사용해서 푸는 문제이다. BFSBFS는 큐를 사용하여 구현할 수 있다. 자세한 구현방법은 아래 링크를 참고하자.https://jaeyeong04.tistory.com/11 [백준] 1260: DFS와 BFS JAVA링크: https://www.acmicpc.net/problem/1260풀이과정이 문제에서 필요한 스킬은 "그래프 표현"과 "dfs/bfs 구현"이다. 그래프 표현그래프는 adjacency list 또는 adjacency matrix로 표현이 가능하다. 아래 사진을 참jaeyeong04.tistory.com 풀이 핵심Input을 사용해서 미로를 matrix에 복사하기.BFS 알고리즘 구현 (dx, ..

백준 2025.12.10

[백준] 1012: 유기농 배추 JAVA

링크: https://www.acmicpc.net/problem/1012풀이과정이 문제는 DFS를 사용해서 푸는 문제이다. DFSDFS는 스택/재귀함수로 구현할 수 있다. 자세한 구현은 아래 링크를 참고하자.https://jaeyeong04.tistory.com/11 [백준] 1260: DFS와 BFS JAVA링크: https://www.acmicpc.net/problem/1260풀이과정이 문제에서 필요한 스킬은 "그래프 표현"과 "dfs/bfs 구현"이다. 그래프 표현그래프는 adjacency list 또는 adjacency matrix로 표현이 가능하다. 아래 사진을 참jaeyeong04.tistory.com 풀이 핵심Input을 사용해서 matrix 만들기 (2차원 배열 사용)matrix 순회하여 ..

백준 2025.12.09

[React] useEffect와 useCallback 함수로 웹 커스텀 단축키 구현하기

들어가며Ctrl+C와 Ctrl+V는 가장 유명한 단축키라고 할 수 있습니다. 바로 복사 붙여넣기를 할 때 사용하는 단축키이죠. 하지만 이러한 브라우저 기본 단축키 외에, 사용자가 정의한 커스텀 단축키를 웹 내에서 구현하려면 어떻게 해야 할까요? 이 글에서는 단순히 커스텀 단축키를 '작동'시키는 것을 넘어, React의 Hook을 활용하여 성능 최적화에 초점을 맞춰 구현하는 방법을 설명합니다.예시 웹 페이지 링크https://jaeyeong04.github.io/multi-key-implementation/ React App jaeyeong04.github.io위 링크에 들어가면 Shift + j라는 커스텀 단축키에 추가된 동작과 Ctrl + s라는 기존 단축키에 다른 동작을 하는 걸 볼 수 있습니다.이런..

React 2025.12.09