본문 바로가기

분류 전체보기

(215)
백준 1051 숫자 정사각형 (Java) 1. 문제 링크 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 정사각형의 꼭짓점 숫자 중 가장 큰 정사각형을 찾는 문제이다. N과 M 중 작은 값부터 정사각형을 만들수 있어서 이중포문을 정사각형 크기만큼씩 돈다. 네 꼭짓점이 모두 같으면 true를 리턴해서 라벨이 있는 out에서 나간다. 정사각형 크기를 줄이면서 도는데 크기가 0이 되면 종료한다. 4. 코드 import java.io.BufferedReader; import java.io.IOException; im..
백준 10282 해킹 (Java) 1. 문제 링크 10282번: 해킹 최흉최악의 해커 yum3이 네트워크 시설의 한 컴퓨터를 해킹했다! 이제 서로에 의존하는 컴퓨터들은 점차 하나둘 전염되기 시작한다. 어떤 컴퓨터 a가 다른 컴퓨터 b에 의존한다면, b가 감염되면 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 컴퓨터끼리 연결되어 있기 때문에 각각을 그래프로 연결한다. 인접리스트를 이용한 다익스트라 알고리즘으로 구현했다. 4. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util..
백준 1913 달팽이 (Java) 1. 문제 링크 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 흔히 생각하는 달팽이의 역순 진행이다. 제일 큰 숫자부터 돌면서 방향 벡터를 이용해 숫자를 채웠다. 표를 벗어나거나 이미 숫자가 들어간 자리라면 방향을 바꾼다. 그리고 출력은 꼭 StringBuilder로 해야 하는 것 같다. System.out.print로 모든 것을 출력하니까 시간 초과가 나왔다. 4. 코드 import java.io.BufferedReader; import java.io.IOExcept..
백준 9012 괄호 (Java) 1. 문제 링크 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 큐를 이용해 여는 괄호가 나오면 큐에 넣고, 닫는 괄호가 나오면 큐에서 꺼낸다. 큐에서 꺼낼 때 큐가 비어있거나, 모든 문자열이 끝났는데 큐에 남아 있다면 VPS가 아니다. 4. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.uti..
백준 9205 맥주 마시면서 걸어가기 (Java) 1. 문제 링크 2. 문제 및 입출력예제 3. 문제 풀이 시작점과 끝점이 정해져 있어 좌표 기준으로 BFS를 진행했다.. 시작점을 큐에 넣고 큐가 빌 때까지 탐색한다. 편의점과 현재 위치를 전부 비교하면서 맥주 20병으로 갈 수 있는 거리(1,000) 이내인지 확인하면서 큐에 넣고 방문 처리를 한다. 페스티벌 위치에 도착하면 happy를 출력한다. 끝까지 도착하지 못한다면 sad를 출력한다. 4. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; public class Main { stati..
백준 1402 아무래도이문제는A번난이도인것같다 (Java) 1. 문제 링크 1402번: 아무래도이문제는A번난이도인것같다 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 100)이 주어진다. 테스트 케이스마다 두 정수 A, B(-231 ≤ A, B ≤ 231-1)가 주어진다. www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 처음에는 아무 생각 없이 문제를 풀다가... 어느 순간 문제 조건이 너무 없는 걸 보고 생각한 결과 특정값을 만들 때 어느 정도를 만들어 놓고 1과 -1을 조합하면 어떤 값이든 만들 수 있을 것 같다는 생각이 들었다. 그래서 코드가 아주 간단하게 끝났다! 4. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe..
백준 13305 주유소 (Java) 1. 문제 링크 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 일직선 상에 있는 도시를 가는데 최소 주유 비용을 찾는 문제이다. 처음에는 해당 숫자가 몇번까지 숫자중에 제일 큰 가격인지 확인하려 했지만.. 숫자가 너무 커서 패스 도시를 지나가면서 제일 작은 가격이 나오면 저장하고 거리 길이만큼 곱해서 갔다. 여기서 마지막 도시는 주유하지 않으니까 리터 당 가격을 저장하지 않았다. 4. 코드 import java.io.BufferedReader; impor..
백준 10250 ACM 호텔 (Java) 1. 문제 링크 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 엘리베이터를 타고 이동하는 거리는 신경쓰지 않기 때문에 1호실이 다 차고 2호실이 다 차는 방향으로 진행된다. 그래서 높이 기준으로 나누어 떨어지는 경우와 아닌 경우로 나눴다. 나누어 떨어지면 마지막 층으로 가야 하고(0층이 없으니까), 아니라면 나머지에 해당하는 층으로 간다. 호수는 몫으로 했고 99호까지 있다는 형식에 맞춰서 2자리로 맞춰서 출력했다. 4. 코드 import java.io.B..