일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- spring
- php 프로그래밍
- 자바
- Java
- 한정 분기
- 백준
- php 프로그래밍 입문 3판
- php 프로그래밍 입문 예제
- 파이썬
- 페이코 초대코드
- 자바 스프링
- programmers
- php 프로그래밍 입문
- 스프링
- C언어
- php
- 플러터 개발환경 설정
- php 프로그래밍 입문 연습문제
- 플러터
- Flutter
- JAVA SPRING
- 페이코 추천인코드
- php 프로그래밍 입문 솔루션
- php 프로그래밍 입문 문제풀이
- 페이코 추천인
- C
- 최단 경로
- 페이코 친구코드
- SWEA
- 배열
- Today
- Total
목록알고리즘/BOJ - Java (123)
ImJay

[BOJ/Java] 17406. 배열 돌리기 4 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net 문제 해석 N x M 크기의 배열에서 특정 연산을 K번 수행할 수 있다. 연산은 배열의 부분을 회전시키는 것이며, 목표는 모든 연산을 수행한 후 배열의 각 행의 합 중 최소값을 찾는 것이다. 풀이 과정 io 메소드는 입력을 받아 초기 배열 상태와 회전 연산을 저장한다. sol 메소드에서는 주어진 회전 연산의 모든 순열을 생성하고(permutation 메소드), 각 순열에 대해 배열을 회..

[BOJ/Java] 1931. 회의실 배정 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 해석 이 문제는 회의실 한 개를 사용할 때 주어진 회의 목록 중에서 최대한 많은 회의를 배정하는 문제이다. 각 회의는 시작 시간과 종료 시간이 주어지며, 회의는 종료 시간과 동시에 다른 회의가 시작될 수 있다. 주어진 회의를 최적으로 배정해야 하며, 회의의 최대 개수를 반환해야 한다. 풀이 과정 제출된 Java 코드는 우선순위 큐(PriorityQueue)를 사용하여 회의를 종료 시간에 따라 정렬하고, 회의가 동일한 종료 시간을 가지면 시작 시간에 따라 정렬한다. 이러한 정렬은 각 회의를 최대한 겹치지 않게 배정하기 위해 사용된다..

[BOJ/Java] 2580. 스도쿠 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net 문제 해석 이 문제는 9x9 크기의 스도쿠 판에서 빈 칸을 채우는 방법에 대해 다룬다. 각 행, 열, 그리고 3x3 크기의 박스 안에 1부터 9까지의 숫자가 중복 없이 등장해야 한다. 주어진 스도쿠 판에는 일부 숫자가 이미 채워져 있으며, 이를 바탕으로 빈 칸을 올바르게 채워야 한다. 풀이 과정 제출된 Java 코드는 빈 칸의 위치를 추적하고, 가능한 모든 숫자를 시도하여 문제를 해결하는 백트래킹 방식을 사용한다. 여기서 P..

[BOJ/Java] 14502. 연구소 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 문제 해석 연구소의 지도가 주어지며, 연구소는 빈 칸, 벽, 바이러스로 구성되어 있다. 벽을 세 개 더 설치하여 바이러스의 확산을 최소화하고, 이때 안전 영역(바이러스가 퍼지지 않은 빈 칸)의 최대 크기를 구하는 것이 문제의 목표이다. 바이러스는 상하좌우로 인접한 빈 칸으로 퍼져 나간다. 풀이 과정 io 메소드에서 입력을 받아 연구소의 초기 상태를 구성한다. 바이러스 위치는 리스트에 저장한다. sol 메소드에서는 벽을 세울 수 있는 모든..

[BOJ/Java] 2146. 다리 만들기 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net 문제 해석 이 문제에서는 N x N 크기의 지도 위에 여러 섬이 표시되어 있으며, 각 섬은 1로, 바다는 0으로 표시된다. 목표는 서로 다른 두 섬을 연결하는 가장 짧은 다리를 찾는 것이다. 다리는 수평 또는 수직으로만 연결할 수 있으며, 다리의 길이는 바다를 지나는 칸의 수로 결정된다. 풀이 과정 sol 메소드는 섬의 경계를 설정하고(setBoundary), 섬들 사이의 최단 다리 거리를 찾는(findWay) 두 가지 주요..

[BOJ/Java] 4963. 섬의 개수 문제 해석 이 문제는 2차원 맵에서 연결된 땅의 덩어리(섬)의 개수를 찾는 문제이다. 맵은 0(바다)과 1(땅)로 구성되어 있으며, 8방향(수직, 수평, 대각선)으로 연결된 땅은 하나의 섬으로 간주된다. 입력의 끝은 너비와 높이가 모두 0인 경우로 주어진다. 풀이 과정 io 함수는 여러 테스트 케이스를 처리하며 각 케이스에 대한 맵 정보를 입력받고, 각 위치에서 섬의 개수를 계산한다. sol 함수는 주어진 위치에서 BFS를 사용하여 섬을 탐색하고, 방문한 위치는 visited 배열을 통해 체크한다. 연결된 모든 땅을 방문하면 섬 하나의 탐색이 완료된다. checkStatus 함수는 주어진 위치가 맵 내부에 있고, 방문하지 않은 땅인지 확인한다. 코드 package..

[BOJ/Java] 17143. 낚시왕 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net 문제 해석 이 문제에서는 R x C 크기의 격자에 상어가 배치되어 있으며, 낚시왕이 상어를 잡는 과정을 시뮬레이션한다. 낚시왕은 격자의 왼쪽 열부터 시작하여 매 턴마다 오른쪽으로 한 칸씩 이동한다. 각 칸에서 가장 가까운 상어를 잡은 후, 모든 상어가 자신의 규칙에 따라 이동한다. 이동 중 상어가 동일한 칸에 도착하면 크기가 가장 큰 상어만 살아남는다. 목표는 낚시왕이 잡은 상어의 크기 합을 최대로 하는 ..

[BOJ/Java] 16236. 아기 상어 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 문제 해석 이 문제에서는 N x N 크기의 격자에 아기 상어와 여러 물고기가 존재하며, 아기 상어는 자신보다 작은 물고기만 먹을 수 있다. 아기 상어는 자신의 크기와 같은 수의 물고기를 먹을 때마다 크기가 1 증가한다. 아기 상어의 목표는 최대한 많은 물고기를 먹는 것이 아니라, 먹을 수 있는 물고기가 없어질 때까지 최단 시간 내에 물고기를 먹는 것이다. 풀이 과정 아기 상어의 이동 경로는 너비 우선 탐색(BFS)..

[BOJ/Java] 15686. 치킨 배달 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 문제 해석 이 문제는 도시의 크기 N×N과 치킨집들 중 최대 M개를 선택하여, 도시의 치킨 거리를 최소화하는 문제이다. 여기서 치킨 거리란, 각 집에서 가장 가까운 치킨집까지의 거리의 합을 의미한다. 풀이 과정 풀이는 조합과 브루트 포스를 이용한 접근 방식을 채택하였다. 모든 치킨집의 조합을 고려하여, 각 조합마다 모든 집의 치킨 거리를 계산하고 이를 최소화한다. sol 함수는 재귀적으로 치킨집의 조..

[BOJ/Java] 2563. 색종이 2563번: 색종이 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변 www.acmicpc.net 문제 해석 이 문제에서는 100x100 크기의 흰 도화지 위에 색종이를 붙이는 작업을 수행하며, 색종이가 차지하는 총 면적을 계산해야 한다. 각 색종이의 크기는 10x10이며, 색종이를 붙일 시작 위치가 주어진다. 풀이 과정 입력 처리: Java의 BufferedReader를 사용하여 색종이의 개수와 각 색종이의 위치를 입력 받는다. 도화지 초기화: boolean 2차원 배열 graph를 사용하여 100x100 도화지를 표현하며, 색종..