일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 플러터 개발환경 설정
- 배열
- 플러터
- C
- 파이썬
- php 프로그래밍 입문 솔루션
- 최단 경로
- 자바
- JAVA SPRING
- php 프로그래밍 입문 문제풀이
- programmers
- 스프링
- 페이코 추천인
- spring
- 백준
- SWEA
- 페이코 초대코드
- php 프로그래밍 입문 예제
- php 프로그래밍 입문 연습문제
- 페이코 친구코드
- Java
- 페이코 추천인코드
- php
- php 프로그래밍
- php 프로그래밍 입문
- 자바 스프링
- 한정 분기
- php 프로그래밍 입문 3판
- Flutter
- C언어
- Today
- Total
목록알고리즘/BOJ - Java (97)
ImJay
[BOJ/Java] 2636. 치즈 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 문제 해석 이 문제는 치즈가 테두리부터 녹아 없어지는 과정을 시뮬레이션하는 문제다. NxM 크기의 격자에 치즈(1로 표시된 부분)가 놓여 있으며, 치즈의 외부 공간은 0으로 표시된다. 치즈는 격자의 가장자리에 노출된 면이 있는 경우, 한 시간 후에 녹아 없어진다. 문제의 목적은 치즈가 모두 녹아 없어지는 데 걸리는 시간과 마지막으로 녹기 전 남은 치즈의 개수를 구하는 것이다. 풀이 과정 격자의 크기와 초기 상태를 입력 받는다. 외부 공간에서 시작..
[BOJ/Java] 10026. 적록색약 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 문제 해석 적록색약 문제는 NxN 격자에 분포된 R(빨강), G(녹색), B(파랑) 세 가지 색을 바탕으로, 정상인과 적록색약인 사람이 각각 보는 구역의 수를 구하는 문제이다. 적록색약인 사람은 빨강과 녹색의 차이를 구분하지 못해 이 두 색을 같은 색으로 본다. 풀이 과정 입력을 받아 두 개의 격자 배열 map01과 map02를 생성한다. map01은 정상인용, map02는 적록색약인용 격자로, 적록색약인용 격자에서..
[BOJ/Java] 14503. 로봇 청소기 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 문제 해석 본 문제는 로봇 청소기가 주어진 지도에서 청소 작업을 수행하는 과정을 시뮬레이션하는 것이다. 로봇 청소기는 초기 위치와 방향이 주어지며, 특정 규칙에 따라 움직이면서 공간을 청소한다. 로봇의 작동 규칙은 다음과 같다: 현재 위치를 청소한다. 현재 방향 기준 왼쪽 방향부터 차례로 탐색을 시도한다. 왼쪽 방향에 청소하지 않은 공간이 존재하면, 그 방향으로 회전한 ..
[BOJ/Java] 2606. 바이러스 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 문제 설명 본 문제에서는 컴퓨터 네트워크가 주어지고, 1번 컴퓨터가 바이러스에 감염되었다고 가정한다. 바이러스는 네트워크를 통해 직접 연결된 컴퓨터로만 전파될 수 있다. 주어진 네트워크에서 바이러스에 감염될 수 있는 컴퓨터의 수를 찾는 것이 목표이다. 네트워크의 연결 상태는 컴퓨터 쌍의 리스트로 제공되며, 각 쌍은 양방향 연결을 나타낸다. 풀이 과정 컴퓨터 수와 연결 정보 입력받기: 네트워크에 있는 컴퓨터의 수와 각 컴퓨터 간의..
[BOJ/Java] 10162. 전자레인지 10162번: 전자레인지 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 www.acmicpc.net 문제 해석 이 문제에서는 전자레인지의 타이머를 설정하는데 사용할 수 있는 버튼이 세 가지가 있다. 각각 5분(300초), 1분(60초), 10초를 나타낸다. 주어진 시간 T초를 이 버튼들로 정확히 설정할 수 있는지, 그리고 가능하다면 각 버튼을 최소 몇 번씩 눌러야 하는지 구하는 것이 목표다. 만약 정확히 설정할 수 없다면 -1을 출력한다. 풀이 과정 이 문제는 주어진 시간 T를 300, 60, 10의 순서대로 ..
[BOJ/Java] 1600. 말이 되고픈 원숭이 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 문제 설명 본 문제에서는 격자 위에서 원숭이가 말의 이동 방식을 제한된 횟수 안에서 사용할 수 있으며, 최소 이동 횟수로 목적지에 도달해야 한다. 격자의 각 칸은 빈 공간이거나 벽일 수 있다. 원숭이는 기본적인 상하좌우 이동 외에도 말처럼 이동할 수 있는 기능을 제한적으로 사용할 수 있다. 풀이 과정 데이터 입력과 초기화: 맵의 크기와 말처럼 이동할 수 있는 최대 횟수를 입력받는다. 맵의 각 칸에..
[BOJ/Java] 17135. 캐슬 디펜스 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 문제 해석 이 문제는 격자판에 적들이 주어지고, 캐슬 디펜스 게임을 통해 궁수 3명을 배치하여 최대한 많은 적을 제거하는 전략을 구현하는 것이다. 궁수는 매 턴마다 자신의 사거리(d) 내에서 가장 가까운 적을 공격한다. 동일 거리에 여러 적이 있을 경우 가장 왼쪽 적을 공격한다. 각 턴이 끝난 후 적들은 한 칸씩 아래로 이동하고, 격자판 밖으로 나가면 제거된다. 궁수의 위치는 격자판의 맨 아래 행이고, 궁수의 위치를 최적으로 결정..
[BOJ/Java] 2206. 벽 부수고 이동하기 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 문제 해석 이 문제에서는 2차원 배열로 표현된 그리드에서 '0'은 이동 가능한 공간을, '1'은 벽을 나타낸다. 목표는 시작 지점 (0, 0)에서 출발하여 (N-1, M-1) 지점에 도착하는 최단 경로를 찾는 것이다. 중요한 조건은 벽을 한 번만 부수고 이동할 수 있다는 점이다. 이 문제는 BFS(너비 우선 탐색)를 사용하여 해결할 수 있다. 풀이 과정 제출된 코드는 BFS를 사용하여 최..
[BOJ/Java] 17142. 연구소 3 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고, www.acmicpc.net 문제 해석 이 문제에서는 연구소 내의 빈 칸에 바이러스를 퍼뜨려 모든 빈 칸을 감염시키는 최소 시간을 구하는 것이 목표다. 연구소는 정사각형 격자 모양으로, 바이러스는 비활성 상태에서 시작해 특정 위치에서 활성화될 수 있다. 활성화된 바이러스는 상하좌우로 퍼질 수 있으며, 빈 칸만 감염시킬 수 있다. 벽은 감염되지 않고, 활성화된 바이러스가 있는 위치로 다른 바이러스가 이동할 수 없다. 풀이 과정 제출된 Java 코드는 가능한 ..
[BOJ/Java] 1074. Z 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 문제 해석 이 문제는 2의 거듭제곱으로 정의된 2차원 배열에서 특정 위치의 방문 순서를 Z-모양 순회로 찾는 것이 목표다. Z-모양 순회는 배열을 4분할하여 각 분할을 재귀적으로 순회하는 방식으로 진행된다. 풀이 과정 제출된 Java 코드는 분할 정복 알고리즘을 활용하여 주어진 위치 (r, c)의 방문 순서를 계산한다. 큰 배열을 작은 단위로 분할하면서 해당 위치가 포함된 분할만을 추가로 탐색하는 방식을 사용한다. 데이..