일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 페이코 친구코드
- 페이코 추천인
- JAVA SPRING
- 백준
- php 프로그래밍 입문 문제풀이
- php 프로그래밍 입문 예제
- 페이코 추천인코드
- spring
- Flutter
- 한정 분기
- 자바
- php 프로그래밍 입문 솔루션
- programmers
- php 프로그래밍 입문
- 플러터 개발환경 설정
- 최단 경로
- C언어
- C
- php 프로그래밍 입문 3판
- Java
- php 프로그래밍 입문 연습문제
- 파이썬
- 배열
- 스프링
- SWEA
- php
- php 프로그래밍
- 자바 스프링
- 페이코 초대코드
- 플러터
- Today
- Total
목록알고리즘/BOJ - Java (97)
ImJay
[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 도화지를 표현하며, 색종..
[BOJ/Java] 11286. 절댓값 힙 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 문제 해석 이 문제는 절댓값 힙을 구현하는 문제다. 절댓값 힙은 절댓값이 가장 작은 값을 우선으로, 절댓값이 같을 경우 실제 값이 작은 순으로 데이터를 정렬하여 제공하는 자료 구조다. 사용자는 숫자를 하나씩 입력하며, 0을 입력할 경우 절댓값 힙에서 최소 값을 출력하고 제거하도록 요청한다. 풀이 과정 입력 처리: Java의 BufferedReader를 사용하여 입력을 받고, 입력된 숫자의 개수를 저장한다. 절댓값 힙 구현: PriorityQueue를 ..
[BOJ/Java] 16935. 배열 돌리기 3 16935번: 배열 돌리기 3 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → www.acmicpc.net 문제 해석 이 문제는 2차원 배열에 대해 여러 가지 연산을 수행하고 최종 결과를 출력하는 문제다. 주어진 연산은 총 6가지이며, 배열의 상하 반전, 좌우 반전, 오른쪽 90도 회전, 왼쪽 90도 회전, 그리고 블록을 이동시키는 특수한 연산 두 가지를 포함한다. 각 연산을 정확히 수행한 후 결과를 출력해야 한다. 풀이 과정 입력 받기: Jav..
[BOJ/Java] 2178. 미로 탐색 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 문제 해석 이 문제는 주어진 n x m 크기의 미로에서 (1, 1) 위치에서 출발하여 (n, m) 위치까지 이동하는 최소 칸 수를 구하는 문제이다. 각 칸은 이동할 수 있는 칸(1)과 이동할 수 없는 칸(0)으로 구성되어 있다. 이동은 상하좌우 네 방향으로만 가능하다. 풀이 과정 이 문제는 BFS(너비 우선 탐색)를 사용하여 해결할 수 있다. BFS는 시작 노드에서 가까운 노드를 우선적으로 탐색하면서 목표 노드까지의 최단 경로를 찾는 알고리즘이다. 각 ..
[BOJ/Java] 2252. 줄 세우기 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { int n, m; public static void main(String[] args) throws IOException { new Main().io(); } private void io() throws IOException { // 입력을 받기 위한 BufferedRea..
[BOJ/Java] 1194. 달이 차오른다, 가자. 1194번: 달이 차오른다, 가자. 첫째 줄에 미로의 세로 크기 N과 가로 크기 M이 주어진다. (1 ≤ N, M ≤ 50) 둘째 줄부터 N개의 줄에 미로의 모양이 주어진다. 같은 타입의 열쇠가 여러 개 있을 수 있고, 문도 마찬가지이다. 그리고, www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { char[][] graph; // 미로의 정보를 담는 2차원 배열 int n, m; // 미로의 세로, 가로 크기 int[][] direction = { { 0, 1 }, { 0, -1 }, { 1, 0 }, { -1, 0 } }; // 상하좌우 이동을 위한 방향 배열 p..
[BOJ/Java] 16987. 계란으로 계란치기 16987번: 계란으로 계란치기 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱 www.acmicpc.net 풀이 package edu.ssafy.im.BOJ.Gold.G5.No16987; import java.io.*; import java.util.StringTokenizer; public class Main { int n, ans; // 계란의 수와 최대 깰 수 있는 계란의 개수를 저장할 변수 int[] durability, weight; // 각 계란의 내구도와 무게를 저장할 배열 boolean[] ..