분류 전체보기 233

백준 1697 - 숨바꼭질

문제 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 www.acmicpc.net 풀이 현재 위치 X에서 이동할 수 있는 세가지 방향인 X+1, X-1, X*2를 검사하고 K가 맞는지 확인한다. 만약 K가 아니라면 ..

BOJ 2019.10.02

백준 2875 - 대회 or 인턴

문제 https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 문제 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.) 백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이 팀원을 찾고 있다. 그런데 올해에는 대회에 참여하려는 학생들 중 K명을 반드시 인턴쉽 프로그램에 참여하라는 학교의 방침이 생기게 되었다. 인턴쉽에 참여하는 학생은 대회에 참여하지 못한다. 백준대학교에서는 뛰어난 인재들이 많기 때문 www.acmicpc.net 풀이 2명의 여학생과 1명의 남학생을 이용해서 팀을 만든 후, 인턴에 참여할 학생을 뽑아야 한다. 여학생과 남학생 중 남은 ..

BOJ 2019.09.30

백준 2304 - 창고 다각형

문제 https://www.acmicpc.net/problem/2304 2304번: 창고 다각형 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 빈 칸을 사이에 두고 주어진다. L과 H는 둘 다 1 이상 1,000 이하이다. www.acmicpc.net 풀이 가장 긴 막대 기둥을 기준으로 왼쪽과 오른쪽으로 나눈다. 왼쪽 부터 가장 긴 막대 기둥까지 진행하면서 스택의 최대 높이를 갱신하면서 넓이를 더해준다. 마찬가지로 오른쪽에서도 가장 긴 막대 기둥까지 진행하면서 스택의 최대 높이를 갱신하면서 넓이를 더해준다. 코드 1 2 3 4 5 6 7 8 9..

BOJ 2019.09.29

백준 7576 - 토마토

문제 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토들의 정보가 주어진다. 즉, 둘째 줄부터 N개의 줄에는 상자에 담긴 토마토의 정보가 주어진다. 하나의 줄에는 상자 가로줄에 들어있는 토마토의 상태가 M개의 정수로 주어진다. 정수 1은 익은 토마토, 정수 0은 익지 않은 토마토, 정수 -1은 토마 www.acmicpc.net 풀이 BFS 탐색을 이용하는 문제이다. BFS 탐색을 이용해서 같은 레벨에 있는 좌표들의 탐색이 끝나면 그 때 결과 값을 증가시켜주면..

BOJ 2019.09.23

백준 10815 - 숫자 카드

문제 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이가 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이 www.acmicpc.net 풀이 이분 탐색을 이용해서 숫자 카드가 존재하는지 알아본다. 이분 탐색을 하기 위해서 숫자 카드의 배열 A를 정렬을 한다. 상..

BOJ 2019.09.22

백준 2146 - 다리 만들기

문제 https://www.acmicpc.net/problem/2146 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다는 생각을 하게 되었다. 그래서 그는, 생색내는 식으로 한 섬과 다른 섬을 잇는 다리 하나만을 만들기로 하였고, 그 또한 다리를 가장 짧게 하여 돈을 아끼려 하였다. 이 나라는 N×N크기의 이차원 평면상에 존재한다. 이 나라는 여러 섬으로 이루어져 있으며, 섬이란 동서남북 www.acmicpc.net 풀이 먼저 섬을 번호 순으로 그룹화를 시킨다. 그리고 각 번호가 다른 그룹사이에서의 최소 칸 수를 구하면 되는 문제이다. 섬을 ..

BOJ 2019.09.21

백준 2011 - 암호코드

문제 https://www.acmicpc.net/problem/2011 2011번: 암호코드 문제 상근이와 선영이가 다른 사람들이 남매간의 대화를 듣는 것을 방지하기 위해서 대화를 서로 암호화 하기로 했다. 그래서 다음과 같은 대화를 했다. 상근: 그냥 간단히 암호화 하자. A를 1이라고 하고, B는 2로, 그리고 Z는 26으로 하는거야. 선영: 그럼 안돼. 만약, "BEAN"을 암호화하면 25114가 나오는데, 이걸 다시 글자로 바꾸는 방법은 여러 가지가 있어. 상근: 그렇네. 25114를 다시 영어로 바꾸면, "BEAAD", "YAAD", " www.acmicpc.net 풀이 N자리의 암호가 주어질 때 N번째에 올 수 있는 암호는 1부터 9까지이고, N-1과 N번째에 10부터 26까지 올 수 있다. ..

BOJ 2019.09.14

백준 4963 - 섬의 개수

문제 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 문제 정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오. 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다. 두 정사각형이 같은 섬에 있으려면, 한 정사각형에서 다른 정사각형으로 걸어서 갈 수 있는 경로가 있어야 한다. 지도는 바다로 둘러쌓여 있으며, 지도 밖으로 나갈 수 없다. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 www.acmicpc.net 풀이 DFS 탐색의 개념을 이용하는 문제이다. 값이 1인 좌표에서 상하좌우, 대각선으로 모두 검사해서 1인 좌표가 있다면, 그 좌표에..

BOJ 2019.09.02

백준 2667 - 단지번호붙이기

문제 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수 www.acmicpc.net 풀이 DFS의 개념을 이용하면 간단하게 풀 수 있는 문제이다. 2차원 배열을 이용해서 그래프를 만든 후 2차원 배열에서 값이 1인 지점을 기준으로 DFS 탐색..

BOJ 2019.08.29

백준 11653 - 소인수분해

문제 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 풀이 소인수분해는 소수들의 곱을 이용해서 정수를 나타내는 방법이다. https://ko.wikipedia.org/wiki/%EC%86%8C%EC%9D%B8%EC%88%98%EB%B6%84%ED%95%B4 소인수분해 - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org N 보다 작은 소수들을 먼저 구하려고 했지만 그럴 필요가 없는 문제이다. 소수가 아닌 수들은 결국 앞에 나온 소수들의 곱으로 이루어지게 되므로, N을 2부터 시작해서 나누었을 때 나머지가 없으면 그 수는 N을 이루는 소수가 된다. 예를..

BOJ 2019.08.23