본문 바로가기

boj127

[Java] BOJ 16930번 달리기 16930번: 달리기 진영이는 다이어트를 위해 N×M 크기의 체육관을 달리려고 한다. 체육관은 1×1 크기의 칸으로 나누어져 있고, 칸은 빈 칸 또는 벽이다. x행 y열에 있는 칸은 (x, y)로 나타낸다. 매 초마다 진영이는 www.acmicpc.net 풀이 출발점에서 도착지에 도착할 때까지 BFS를 수행하게 하여 해결했습니다. 이때, BFS를 수행할때, 최대 K개의 칸을 이동할 수 있으므로 1칸 ~ K개의 칸까지의 모든 경우를 전부 큐에 담에 BFS를 돌리게 해야 합니다. 또한, visited 배열을 Integer.MAX_VALUE 즉, 가장 큰 값으로 초기화하고 최솟값을 저장하기 때문에 이미 방문을 했더라도 방문 횟수가 더 크다면 중지시키고 작다면 방문을 할 수 있게 해주어야 합니다. 코드 impo.. 2021. 5. 16.
[Java] BOJ 10026번 적록색약 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 풀이 우선, BFS를 사용하여 일반일 경우의 구역의 수를 구하고 적록색약일 경우 'G'를 'R'로 바꾸어 같은 색으로 만든 후 BFS를 수행하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.St.. 2021. 5. 14.
[Java] BOJ 14500번 테트로미노 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 풀이 재귀 함수를 사용해서 4칸을 이동했을 때의 숫자의 합들 중에 큰 값을 경신하도록 하고 'ㅜ' 모양은 재귀 함수로는 만들 수 없어서 직접 하드 코딩하여 해결할 수 있었습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public.. 2021. 5. 13.
[Java] BOJ 15686번 치킨 배달 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 풀이 조합을 사용하여 해결했습니다. 처음에 순열로 접근했다가 시간 초과가 나서 헤매었었던 문제입니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public clas.. 2021. 5. 12.
[Java] BOJ 1759번 암호 만들기 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 풀이 조합을 통해 문제에서 요구하는 길이만큼의 암호가 만들어졌다면 문제에서 주어진 조건에 부합하는지 판별하고 정답에 추가함으로써 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public s.. 2021. 5. 11.
[Java] BOJ 14503번 로봇 청소기 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 풀이 문제에서 주어진 조건대로 재귀함수를 작성하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int answer; public static int N, M; public static int r, c, .. 2021. 5. 10.