분류 전체보기(361)
-
[Baekjoon] 10026번: 적록색약 - Java
https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 문제 설명 기본적인 DFS 문제이다. RGB 픽셀로 이루어진 입력이 주어지고 일반 사람과 적록색약이 볼 수 있는 구역의 수를 구하면 된다. 풀이 방법 일반인과 적록색약이 보는 그림을 구분하기 위해 먼저 두 개의 배열을 준비하고 입력받았다. 적록색약의 그림은 G를 R로 대신 입력하면 된다(또는 그 반대). for (int x = 0; x < N; x++) { char[] pixels = br..
2023.02.13 -
[Baekjoon] 14888번: 연산자 끼워넣기 - Java
https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 문제 설명 수열과 연산자들이 주어지고 그 모든 조합을 찾아 최댓값과 최솟값을 구하는 문제이다. 모든 경우를 탐색해야 하므로 완전탐색 문제이다. 풀이 방법 이 문제는 재귀를 활용하여 해결할 수 있다. 해결 방법이 DFS와 같은 방식이다. 종료 조건은 인덱스와 N의 값이 같을 때인데 N과 같다면 더 이상 할 연산이 없기 때문이다. 그리고 반복이 ..
2023.02.11 -
[Baekjoon] 3190번: 뱀 - Java
https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 문제 설명 문제 이해 자체는 어렵지 않으나 구현 및 시뮬레이션 문제라 시간이 걸린다. 그리고 방향 전환 알고리즘에 대한 감이 없다면 처음에는 조금 시간이 걸릴 수 있다. 또한 뱀의 길이 및 방향 전환 관리를 위해 덱, 큐 자료구조를 사용했다. 풀이 방법 구현 문제라 딱히 설명할 것은 없다. 전체 코드는 다음과 같다. package baekjoon.queue; import java.io.BufferedRe..
2023.02.10 -
[Baekjoon] 2493번: 탑 - Java
https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 문제 설명 문제가 조금 장황한 것 같지만 핵심은 간단하다. 주어진 탑들이 마지막부터 반대 방향으로 레이저를 발사하는데 자신보다 높은 탑만 신호를 받을 수 있다. 즉, 마지막부터 자신보다 높은 가장 가까운 탑을 찾아내면 되는 것이다. 사이트 예제를 그림으로 설명하면 다음과 같다. 이는 스택을 활용하면 효율적으로 해결할 수 있다. 오등큰수와 비슷한 문제이다. 풀이 방법 핵심 로직은 다음과 같다. 중..
2023.02.09 -
[Baekjoon] 17299번: 오등큰수 - Java
https://www.acmicpc.net/problem/17299 17299번: 오등큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 문제 설명 오른쪽에 있는 숫자 중 자신보다 수열에서 많이 등장한 가장 가까운 수를 찾으면 된다. 문제 자체는 이해하면 어렵지 않지만 구현에서 고생했다. 풀이 방법 1. 이중 반복문(시간 초과) 처음에는 반복문을 통해 순회하면서 해결하려고 했다. 하지만 시간 초과가 발생했다. for (int i = 0; i < N; i++) { int curElem = elems[i]; boolean isAppearence =..
2023.02.08 -
[Session] Spring Session 톺아보기
1. 개요 Spring Session은 Spring 애플리케이션에서 세션을 더 통합적이고 체계적으로 관리하기 위해 개발된 프로젝트이다. Spring Session은 HTTP, WebSocket, WebFlux 환경에서 언제든지 세션과 관련된 구현체를 변경할 수 있도록 제공된다. 2. 모듈 Spring Session을 활용하기 위해 제공되는 주요 모듈을 살펴보자. Spring Session Core - 핵심 Spring Session 기능 및 API 제공 Spring Session Data Redis - Redis 구성을 지원하는 SessionRepository 및 ReactiveSesionRepository 구현체 제공 Spring Session JDBC - RDB 및 구성을 지원하는 SessionRep..
2022.06.29