목록분류 전체보기 (68)
Nodaga의 IT 블로그
https://www.acmicpc.net/problem/1343문제 설명민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB 이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다. 폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.입력 형식첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다.출력 형식첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.입출력 예제입력1XXXXXX 출력1AAAABB 입력2XX.XX 출력2BB.BB 입력3XXXX....XXX.....XX 출력3-1 입력4X 출력4-1 입력5XX.XXXX..
https://www.acmicpc.net/problem/14248문제 설명영우는 개구리다 개굴개굴개굴 영우는 지금 n개의 돌이 일렬로 놓여있는 돌다리에 있다. 그리고 돌다리의 돌에는 숫자가 하나씩 적혀있다. 영우는 이 숫자가 적혀있는 만큼 왼쪽이나 오른쪽으로 점프할 수 있는데, 이때 돌다리 밖으로 나갈 수는 없다. 영우는 이 돌다리에서 자기가 방문 가능한 돌들의 개수를 알고 싶어한다. 방문 가능하다는 것은 현재위치에서 다른 돌을 적절히 밟아 해당하는 위치로 이동이 가능하다는 뜻이다. 현재 위치가 주어졌을 때, 영우가 방문 가능한 돌들의 개수를 출력하시오.입력 형식첫 번째 줄에는 돌다리의 돌 개수 n이 주어진다.(1≤n≤100,000) 돌의 번호는 왼쪽부터 1번에서 n번이다. 다음 줄에는 그 위치에서 점..
https://www.acmicpc.net/problem/14496문제 설명선린에 합격한 대호에게는 큰 고민이 있다. 대호는 중학교 3년 내내 공부만 했기 때문에, 요즘 학생들이 사용하는 ‘야민정음’에 대해서는 문외한이다. 친구들의 대화에 끼고 싶은 대호는 야민정음을 공부하기로 했다. 야민정음이란, 비슷한 모양의 글자를 원래 문자 대신에 사용하는 것을 일컫는다. 예를 들어, ‘그대’는 ‘그머’로, ‘팔도비빔면’은 ‘괄도네넴댼’으로, ‘식용유’는 ‘식용윾’으로, ‘대호’는 ‘머호’로 바꿀 수 있다. 아무 문자나 치환할 수 있는 건 아니며 치환이 가능한 몇 개의 문자들이 정해져있다. 예를 들어보자. (a, b), (a, c), (b, d), (c, d)가 주어지는 경우, a를 d로 바꾸는 방법은 a-b-d,..
https://www.acmicpc.net/problem/15904문제 설명UCPC는 '전국 대학생 프로그래밍 대회 동아리 연합 여름 대회'의 줄임말로 알려져있다. 하지만 이 줄임말이 정확히 어떻게 구성되었는지는 아무도 모른다. UCPC 2018을 준비하던 ntopia는 여러 사람들에게 UCPC가 정확히 무엇의 줄임말인지 물어보았지만, 아무도 정확한 답을 제시해주지 못했다. ntopia가 들은 몇 가지 답을 아래에 적어보았다.Union of Computer Programming Contest club contest Union of Computer Programming contest Club contest Union of Computer Programming contest club Contest Union..

https://www.acmicpc.net/problem/2669문제 설명평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으며, 변이나 꼭짓점이 겹칠 수도 있다. 이 직사각형들이 차지하는 면적을 구하는 프로그램을 작성하시오.입력 형식입력은 네 줄이며, 각 줄은 직사각형의 위치를 나타내는 네 개의 정수로 주어진다. 첫 번째와 두 번째의 정수는 사각형의 왼쪽 아래 꼭짓점의 x좌표, y좌표이고 세 번째와 네 번째의 정수는 사각형의 오른쪽 위 꼭짓점의 x좌표, y좌표이다. 모든 x좌표와 y좌표는 1이상이고 100이하인 정수이다.출력 형식첫 줄에 네개의 직사각형이 차지하는 면..
https://www.acmicpc.net/problem/17086문제 설명N×M 크기의 공간에 아기 상어 여러 마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 아기 상어가 최대 1마리 존재한다. 어떤 칸의 안전 거리는 그 칸과 가장 거리가 가까운 아기 상어와의 거리이다. 두 칸의 거리는 하나의 칸에서 다른 칸으로 가기 위해서 지나야 하는 칸의 수이고, 이동은 인접한 8방향(대각선 포함)이 가능하다. 안전 거리가 가장 큰 칸을 구해보자. 입력 형식첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸과 상어의 수가 각각 한 개 이상인 입력만 주어진다.출력 ..
https://www.acmicpc.net/problem/13706문제 설명정수 N이 주어졌을 때, N의 제곱근을 구하는 프로그램을 작성하시오.입력 형식첫째 줄에 양의 정수 N이 주어진다. 정수 N의 제곱근은 항상 정수이며, N의 길이는 800자리를 넘지 않는다.(800이 최대 값이 아니라 800자리라는 것 즉 엄청 큰 수다)출력 형식첫째 줄에 정수 N의 제곱근을 출력한다.입출력 예제입력136 출력16 입력281 출력29 입력3226576 출력3476풀이이분 탐색법을 이용해서 문제를 해결했다.우선 N의 값이 매우 큰 수이기에 java.math.BigInteger를 사용해서 N값을 읽었고1부터 N을 각자 left, right로 지정 후 그 값의 중간 값인 mid를 두어 해당 mid의 제곱(pow(2))의 ..
https://www.acmicpc.net/problem/11004문제 설명수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오.입력 형식첫째 줄에 N(1 ≤ N ≤ 5,000,000)과 K (1 ≤ K ≤ N)이 주어진다. 둘째에는 A1, A2, ..., AN이 주어진다. (-109 ≤ Ai ≤ 109)출력 형식A를 정렬했을 때, 앞에서부터 K번째 있는 수를 출력한다.입출력 예제입력15 24 1 2 3 5 출력12풀이정말 간단하게 자바에서 제공하는 Arrays.sort의 기능을 사용해서 입력받은 수열을 정렬시키고 K 번째의 수를 출력만 하면 되는 간단한 문제였다.코드package Baekjoon.silver;import ..
https://www.acmicpc.net/problem/1251문제 설명알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다. 각각은 적어도 길이가 1 이상인 단어여야 한다. 이제 이렇게 나눈 세 개의 작은 단어들을 앞뒤를 뒤집고, 이를 다시 원래의 순서대로 합친다. 예를 들어,단어 : arrested 세 단어로 나누기 : ar / rest / ed 각각 뒤집기 : ra / tser / de 합치기 : ratserde단어가 주어지면, 이렇게 만들 수 있는 단어 중에서 사전순으로 가장 앞서는 단어를 출력하는 프로그램을 작성하시오.입력 형식첫째 줄에 영어 소문자로 된 단..
https://www.acmicpc.net/problem/1769문제 설명문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 좀 더 쉬운 문제로 바꾸어 풀어 보는 방법이 있다. 소위 "다른 문제로 바꾸어 풀기"라는 이 방법은, 아래와 같은 과정으로 이루어진다.풀고자 하는 문제를 다른 문제로 변환한다. 변환된 문제의 답을 구한다. 구한 답을 원래 문제의 답으로 삼는다.이를 보다 쉽게 이해하기 위해서, 다음의 초등학교 수학 수준의 예를 들어 보자. 문제 1. "양의 정수 X는 3의 배수인가?" 이 문제를 아래와 같이 변환하는데, X의 각 자리의 수를 단순히 더한 수 Y를 ..