2017/09/01 7

백준 9461번 - 파도반 수열

백준 9461번 - 파도반 수열https://www.acmicpc.net/problem/9461 문제오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다.첫 삼각형은 정삼각형으로 변의 길이는 1이다.그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다.나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다.파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다.P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다.N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다.각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100) 출력각 테..

아카이빙/BOJ 2017.09.01

백준 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