백준182 [BOJ] 1987 알파벳 - JAVA 1. 문제 https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다. .. 코딩테스트/BOJ 2022. 2. 18. [BOJ] 3109 빵집 - JAVA 1. 문제 https://www.acmicpc.net/problem/3109 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net 빵집이 있는 곳은 R*C 격자로 표현할 수 있다. 첫째 열은 근처 빵집의 가스관이고, 마지막 열은 원웅이의 빵집이다. 원웅이는 가스관과 빵집을 연결하는 파이프를 설치하려고 한다. 빵집과 가스관 사이에는 건물이 있을 수도 있다. 건물이 있는 경우에는 파이프를 놓을 수 없다. 가스관과 빵집을 연결하는 모든 파이프라인은 첫째 열에서 시작해야 하고, 마지막 열에서 끝나야 한다. 각 칸은 오른쪽, 오른쪽 위 대.. 코딩테스트/BOJ 2022. 2. 18. [BOJ] 9663 N-Queen - JAVA 1. 문제 https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 2. 풀이 한 열에 한 개만 놓을 수 있으므로 1차원 배열로 관리한다. 해당 열에 방문했다면 true, 아니면 false 한 대각선에도 한 개만 놓을 수 있으므로 오른쪽, 왼쪽 대각선도 1차원 배열로 관리한다. 번호는 그림과 같은.. 코딩테스트/BOJ 2022. 2. 18. [BOJ] 1992 쿼드트리 - JAVA 1. 문제 https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 주어진 영상이 모두 0으로만 되어 있으면 압축 결과는 "0"이 되고, 모두 1로만 되어 있으면 압축 결과는 "1"이 된다. 만약 0과 1이 섞여 있으면 전체를 한 번에 나타내지를 못하고, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래, 이렇게 4개의 영상으로 나누어 압축하게 되며, 이 4개의 영역을 압축한 결과를 차례대로 괄호 안에 묶어서 표현한다 2. 풀이 주어진 영상 .. 코딩테스트/BOJ 2022. 2. 16. [BOJ] 2980 도로와 신호등 - JAVA 1. 문제 2980번: 도로와 신호등 상근이는 트럭을 가지고 긴 일직선 도로를 운전하고 있다. 도로에는 신호등이 설치되어 있다. 상근이는 각 신호등에 대해서 빨간 불이 지속되는 시간과 초록 불이 지속되는 시간을 미리 구해왔 www.acmicpc.net 상근이는 트럭을 가지고 긴 일직선 도로를 운전하고 있다. 도로에는 신호등이 설치되어 있다. 상근이는 각 신호등에 대해서 빨간 불이 지속되는 시간과 초록 불이 지속되는 시간을 미리 구해왔다. (빨강색과 초록색 불빛은 무한히 반복된다) 상근이의 트럭이 도로에 진입했을 때, 모든 신호등의 색상은 빨간색이고, 사이클이 막 시작한 상태이다. 상근이는 1초에 1미터를 움직인다. 신호등의 색상이 빨간색인 경우에는 그 자리에서 멈추고 초록색으로 바뀔때 까지 기다린다. 상.. 코딩테스트/BOJ 2022. 2. 16. [BOJ] 1074 Z - JAVA 1. 문제 https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 2. 풀이 재귀함수를 이용한다. 0. n==0이라면 2의 0제곱, 즉 1이므로 함수를 종료한다. 1. r,c가 둘 다 절반보다 크다면 점이 4구역에 있는 경우이므로 나머지 세 면적을 더하고 4구역을 호출한다. 2. r만 절반보다 크다면 3구역에 있는 경우이므로 나머지 두 면적을 더하고 3구역을 호출한다. 3. c만 절반보다 크다면 2구역에 있는 경우이므로 나머지 한 면적을 더하.. 코딩테스트/BOJ 2022. 2. 16. [BOJ] 10709 기상캐스터 - JAVA 1. 문제 https://www.acmicpc.net/problem/10709 10709번: 기상캐스터 출력은 H 행으로, 각 행에는 공백으로 구분된 W 개의 정수를 출력한다. 출력의 i 번째 행 j 번째 정수 (1 ≦ i ≦ H, 1 ≦ j ≦ W) 는, 지금부터 몇 분후에 처음으로 구역 (i, j) 에 구름이 뜨는지를 표시 www.acmicpc.net 2. 풀이 한줄한줄 입력받을 때마다 cloud를 -1로 초기화했다. 중간에 구름을 만난다면 그 구름 인덱스를 cloud에 저장한다. 구름이 아닌데 cloud가 아직 -1이라면 -1을 출력한다. 구름이 아니고 cloud가 -1이 아니라면 현재 인덱스-cloud를 출력한다. import java.io.BufferedReader; import java.io... 코딩테스트/BOJ 2022. 2. 16. [BOJ] 2527 직사각형 - JAVA 1. 문제 https://www.acmicpc.net/problem/2527 2527번: 직사각형 4개의 줄로 이루어져 있다. 각 줄에는 8개의 정수가 하나의 공백을 두고 나타나는데, 첫 4개의 정수는 첫 번째 직사각형을, 나머지 4개의 정수는 두 번째 직사각형을 각각 나타낸다. 단 입력 직사 www.acmicpc.net 2. 풀이 겹치지않음->점->선분->겹침 순으로 파악하면 된다. import java.io.*; import java.util.*; public class BOJ_2527_직사각형 { private static int[] points; public static void main(String[] args) throws IOException { BufferedReader in = new B.. 코딩테스트/BOJ 2022. 2. 16. [BOJ] 2559 수열 - JAVA 1. 문제 https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net N개의 수열 중 K만큼 연속적인 합을 구한 뒤, 그 중 가장 큰 합을 출력한다. 2. 풀이 1. sum, MAX 변수를 만들고 숫자를 받아가면서 sum과 queue에 더한다. 2. queue의 사이즈가 5가 되었다면 최대값을 다시 비교하고, 다음 값 비교를 위해 sum에서 큐의 가장 앞 원소(front)를 뺀다. 3. 최대값을 출력한다. import java.io.*; im.. 코딩테스트/BOJ 2022. 2. 14. [BOJ] 2304 창고 다각형 - JAVA 1. 문제 https://www.acmicpc.net/problem/2304 2304번: 창고 다각형 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 www.acmicpc.net 창고의 지붕을 다음과 같이 만든다. 지붕은 수평 부분과 수직 부분으로 구성되며, 모두 연결되어야 한다. 지붕의 수평 부분은 반드시 어떤 기둥의 윗면과 닿아야 한다. 지붕의 수직 부분은 반드시 어떤 기둥의 옆면과 닿아야 한다. 지붕의 가장자리는 땅에 닿아야 한다. 비가 올 때 물이 고이지 않도록 지붕의 어떤 부분도 오목하게 들어간 부분이 없어야 한다. 2. 풀이 먼저 x축.. 코딩테스트/BOJ 2022. 2. 14. [BOJ] 1244 스위치 켜고 끄기 - JAVA 1. 문제 https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 스위치가 꺼져있으면 0, 켜져있으면 1이다. 남자는 1, 여자는 2다. 학생들은 1이상 스위치 개수 이하의 자연수를 받는다. 남학생은 본인 번호의 배수 스위치를 바꾼다. 여학생은 본인 번호 기준으로 양 옆이 대칭이 아니게 될 때까지 넓혀가면서 바꾼다. 2. 풀이 스위치 배열은 좀 더 편하게 코딩하기 위해 boolean으로 설정했다. 남학생=> 본인번호-1을 시작으로 배수마다 상태를.. 코딩테스트/BOJ 2022. 2. 13. [BOJ] 2628 종이자르기 - JAVA 1. 문제 https://www.acmicpc.net/problem/2628 2628번: 종이자르기 아래 과 같이 직사각형 모양의 종이가 있다. 이 종이는 가로방향과 세로 방향으로 1㎝마다 점선이 그어져 있다. 가로 점선은 위에서 아래로 1번부터 차례로 번호가 붙어 있고, 세로 점선 www.acmicpc.net 종이를 칼로 자른다. 가로, 세로 방향으로 끝에서 끝까지만 자를 수 있다. 2. 풀이 자르는 점선을 모두 입력받고 정렬시켰다. 현재 점선-직전 점선으로 gap을 구해서 하나하나 max값과 비교했다. 맨 끝과의 차이도 알아야 해서 점선 배열에 가로의 끝 값, 세로의 끝 값도 넣어줘야 했다. 하지만 이럴 필요 없이 그냥 가로의 가장 큰 gap, 세로의 가장 큰 gap을 각각 찾아서 서로 곱해주면 된다.. 코딩테스트/BOJ 2022. 2. 13. 이전 1 ··· 10 11 12 13 14 15 16 다음