아카이빙/BOJ 30

백준 6593번 - 상범 빌딩

백준 6593번 - 상범 빌딩https://www.acmicpc.net/problem/6593 문제당신은 상범 빌딩에 갇히고 말았다.여기서 탈출하는 가장 빠른 길은 무엇일까?상범 빌딩은 각 변의 길이가 1인 정육면체(단위 정육면체)로 이루어져있다.각 정육면체는 금으로 이루어져 있어 지나갈 수 없거나, 비어있어서 지나갈 수 있게 되어있다.당신은 각 칸에서 인접한 6개의 칸(동,서,남,북,상,하)으로 1분의 시간을 들여 이동할 수 있다.즉, 대각선으로 이동하는 것은 불가능하다.그리고 상범 빌딩의 바깥면도 모두 금으로 막혀있어 출구를 통해서만 탈출할 수 있다.당신은 상범 빌딩을 탈출할 수 있을까? 만약 그렇다면 얼마나 걸릴까? 입력입력은 여러 개의 테스트 케이스로 이루어지며, 각 테스트 케이스는 세 개의 정수..

아카이빙/BOJ 2017.09.01

백준 1005번 - ACM Craft

백준 1005번 - ACM Crafthttps://www.acmicpc.net/problem/1005 문제서기 2012년! 드디어 2년간 수많은 국민들을 기다리게 한 게임 ACM Craft (Association of Construction Manager Craft)가 발매되었다. 이 게임은 지금까지 나온 게임들과는 다르게 ACM크래프트는 다이나믹한 게임 진행을 위해 건물을 짓는 순서가 정해져 있지 않다. 즉, 첫 번째 게임과 두 번째 게임이 건물을 짓는 순서가 다를 수도 있다. 매 게임시작 시 건물을 짓는 순서가 주어진다. 또한 모든 건물은 각각 건설을 시작하여 완성이 될 때까지 Delay가 존재한다.위의 예시를 보자.이번 게임에서는 다음과 같이 건설 순서 규칙이 주어졌다. 1번 건물의 건설이 완료된다..

아카이빙/BOJ 2017.09.01

백준 1780번 - 종이의 개수

백준 1780번 - 종이의 개수https://www.acmicpc.net/problem/1780 문제N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이 때 다음의 규칙에 따라 자르려고 한다.만약 종이가 모두 같은 수로 되어 있다면 이 종이를 그대로 사용한다. (1)이 아닌 경우에는 종이를 같은 크기의 9개의 종이로 자르고, 각각의 잘린 종이에 대해서 (1)의 과정을 반복한다.이와 같이 종이를 잘랐을 때, -1로만 채워진 종이의 개수, 0으로만 채워진 종이의 개수, 1로만 채워진 종이의 개수를 구해내는 프로그램을 작성하시오. 입력첫째 줄에 N(1≤N≤3^7, N은 3^k 꼴)이 주어진다.다음 ..

아카이빙/BOJ 2017.09.01

백준 1074번 - Z

백준 1074번 - Zhttps://www.acmicpc.net/problem/1074 문제한수는 2차원 배열 (항상 2^N * 2^N 크기이다)을 Z모양으로 탐색하려고 한다.예를 들어, 2*2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, 2차원 배열의 크기가 2^N * 2^N라서 왼쪽 위에 있는 칸이 하나가 아니라면, 배열을 4등분 한 후에 (크기가 같은 2^(N-1)로) 재귀적으로 순서대로 방문한다.다음 예는 2^2 * 2^2 크기의 배열을 방문한 순서이다.N이 주어졌을 때, (r, c)를 몇 번째로 방문하는지 출력하는 프로그램을 작성하시오.다음 그림은 N=3일 때의 예이다. 입력첫째 줄에 N r c가 주어진다.N은 15보다 작거나 같은 자연수이고..

아카이빙/BOJ 2017.09.01

백준 1992번 - 쿼드트리

백준 1992번 - 쿼드트리https://www.acmicpc.net/problem/1992 문제흑백 영상을 압축하여 표현하는 데이터 구조로 쿼드 트리(Quad Tree)라는 방법이 있다. 흰 점을 나타내는 0과 검은 점을 나타내는 1로만 이루어진 영상(2차원 배열)에서 같은 숫자의 점들이 한 곳에 많이 몰려있으면, 쿼드 트리에서는 이를 압축하여 간단히 표현할 수 있다.주어진 영상이 모두 0으로만 되어 있으면 압축 결과는 "0"이 되고, 모두 1로만 되어 있으면 압축 결과는 "1"이 된다. 만약 0과 1이 섞여 있으면 전체를 한 번에 나타내지를 못하고, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래, 이렇게 4개의 영상으로 나누어 압축하게 되며, 이 4개의 영역을 압축한 결과를 차례대로 괄호 안에 묶어..

아카이빙/BOJ 2017.09.01

백준 1629번 - 곱셈

백준 1629번 - 곱셈https://www.acmicpc.net/problem/1629 문제자연수 A를 B번 곱한 수를 알고 싶다.단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오. 입력첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다.A, B, C는 모두 2,147,483,647 이하의 자연수이다. 출력첫째 줄에 A를 B번 곱한 수를 C로 나눈 나머지를 출력한다. 접근a를 b번 곱하는 방법으로 계산하면 시간 초과가 뜬다.​ 임을 이용하여 곱연산을 최소화 한다.ret 값을 1로 초기화 한 다음, b를 2로 나누었을 때 나머지가 1인 경우에만 ret값에다가 a를 곱해준다.a에는 a의 제곱을 대입한다. ret a b b%2 ------------..

아카이빙/BOJ 2017.09.01

백준 1260번 - DFS와 BFS

백준 1260번 - DFS와 BFShttps://www.acmicpc.net/problem/1260 문제그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오.단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 입력첫째 줄에 정점의 개수 N(1≤N≤1,000), 간선의 개수 M(1≤M≤10,000), 탐색을 시작할 정점의 번호 V가 주어진다.다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다.한 간선이 여러 번 주어질 수도 있는데, 간선이 하나만 있는 것으로 생각하면 된다. 입력으로 주어지는 간선은 양방향이다. 출력첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수..

아카이빙/BOJ 2017.08.13

백준 2468번 - 안전 영역

백준 2468번 - 안전 영역https://www.acmicpc.net/problem/2468 문제재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다.먼저 어떤 지역의 높이 정보를 파악한다.그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다.이 때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다.어떤 지역의 높이 정보는 행과 열의 크기가 각각 N인 2차원 배열 형태로 주어지며 배열의 각 원소는 해당 지점의 높이를 표시하는 자연수이다.( 중략 ) 자세한 내용은 2468번 링크 참조어떤 지역의 높이 정보가 주어졌을 때, 장마철에 물에..

아카이빙/BOJ 2017.08.13

백준 1697번 - 숨바꼭질

백준 1697번 - 숨바꼭질https://www.acmicpc.net/problem/1697 문제수빈이는 동생과 숨바꼭질을 하고 있다.수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다.만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. 출력수빈이가 동생을 찾는 가장 빠른 시간을 출력한다. 접근BF..

아카이빙/BOJ 2017.08.13

백준 1600번 - 말이 되고픈 원숭이

백준 1600번 - 말이 되고픈 원숭이https://www.acmicpc.net/problem/1600 문제동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 그 녀석은 말(Horse)이 되기를 간절히 원했다.그래서 그는 말의 움직임을 유심히 살펴보고 그대로 따라 하기로 하였다. 말은 말이다. 말은 격자판에서 체스의 나이트와 같은 이동방식을 가진다.다음그림에 말(H)의 이동방법이 나타나있다. x표시한 곳으로 말이 갈 수 있다는 뜻이다.(참고로 말은 장애물을 뛰어넘을 수 있다.). x . x . x . . . x . . H . . x . . . x . x . x .근데 원숭이는 한 가지 착각하고 있는 것이 있다. 말은 저렇게 움직일 수 있지만 원숭이는 능력치가 딸려서 총 K번만 저렇게 움직일 수..

아카이빙/BOJ 2017.08.13