[BOJ/Silver 5] 백준 24039 2021은 무엇이 특별할까?(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/24039 문제백준 온라인 저지의 송년대회 Good Bye BOJ, 2021!의 개최일은 2021년 12월 31일이다. 원이는 대회가 개최된다는 사실이 기뻐 제목을 뚫어져라 보다가 2021이 무언가 특별하다는 사실을 깨달았다.그렇다. 2021은 연속한 두 소수 43과 47의 곱이다. 다음에 이런년도가 오려면 무려 470년 뒤인 2491년이 되어야 한다. 원이는 어떤 수가 연속한 두 소수의 곱으로 이루어져 있으면 특별한 수라 부르기로 하였다.주어진 수보다 큰 특별한 수 중 가장 작은 수를 구하는 프로그램을 작성하시오. 입력첫 번째 줄에 주어진 수 N이 주어진다. 출력첫 번째 줄에 N보다 큰 특별한 수 중 가장 작은 수를 출력하여라. 제한 1..
[BOJ/Silver 1] 백준 1342 행운의 문자열(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/1342 문제민식이와 준영이는 자기 방에서 문자열을 공부하고 있다. 민식이가 말하길 인접해 있는 모든 문자가 같지 않은 문자열을 행운의 문자열이라고 한다고 한다. 준영이는 문자열 S를 분석하기 시작했다. 준영이는 문자열 S에 나오는 문자를 재배치하면 서로 다른 행운의 문자열이 몇 개 나오는지 궁금해졌다. 만약 원래 문자열 S도 행운의 문자열이라면 그것도 개수에 포함한다. 입력첫째 줄에 문자열 S가 주어진다. S의 길이는 최대 10이고, 알파벳 소문자로만 이루어져 있다. 출력첫째 줄에 위치를 재배치해서 얻은 서로 다른 행운의 문자열의 개수를 출력한다. 예제 입력 1aabbbaa예제 출력 11예제 입력 2ab예제 출력 22예제 입력 3aaab..
[BOJ/Silver 1] 백준 33254 Hurry the Hedgehog(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/33254 문제Hurry is a Hedgehog, who lives in the Mushroom Kingdom. He is on a mission to save Princess Plum from the evil Donkey Kong. In order to get to the Princess, Hurry must run through a hyperspace network of roads. These roads are dangerous and for every road that he walks between two intersections, he is getting attacked by Space Invaders. Luckily, at so..
[BOJ/Silver 4] 백준 1835 카드(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/1835 문제1부터 N까지의 숫자가 적힌 카드가 있다. 찬유는 이 카드를 가지고 마술을 하려 한다. 마술을 하는 순서는 다음과 같다.먼저 1부터 N까지의 숫자가 적힌 카드에서 첫 번째 카드를 가장 뒤로 옮긴다. 그러고 나서 첫 번째 카드를 책상 위에 올려놓는다. 그런데 그 카드는 1이 되어야 한다.그리고 남은 카드 중에서 첫 번째 카드를 가장 뒤로 옮기고, 또 가장 앞에 있는 카드를 가장 뒤로 옮긴다.(2번 반복) 그리고 가장 앞에 있는 카드를 책상 위에 올려놓는다. 그런데 그 카드는 2가 되어야 한다.또 남은 카드 중에서 첫 번째 카드를 가장 뒤로 옮기고... (3번 반복) 그리고 가장 앞에 있는 카드를 책상위에 올려놓는데 그것은 3이 ..
[BOJ/Silver 2] 백준 31871 영일랜드(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/31871 문제영일랜드는 하나의 정문과 N개의 놀이기구로 이루어진 테마파크로 각각 식별 번호가 매겨져 있다. 정문은 0번, 놀이기구는 1번부터 N번까지의 번호로 구분된다. 정문과 놀이기구 혹은 놀이기구와 놀이기구 사이에는 단방향 간선으로 이어진다. 두 장소를 잇는 간선은 여러 개일 수 있으며 출발 장소와 도착 장소가 같을 수도 있다.영일랜드에 놀러 간 정민이는 영일랜드의 정문에서 출발해 모든 놀이기구를 한 번씩만 탑승하고 정문으로 돌아오는 경로의 최장 시간이 궁금하다. 영일랜드의 놀이기구는 매혹적이어서 안 타고 지나갈 수 없어 각 놀이기구에는 최대 한 번씩만 도달할 수 있다. 또한, 모든 놀이기구를 탑승할 때까지 정문을 경유할 수 없으며 ..
[BOJ/Silver 5] 백준 32281 유리구슬 (Glass Bead)(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/32281 문제투명한 유리구슬처럼 보이지만그렇게 쉽게 깨지진 않을 거야사랑해 너만을 변하지 않도록영원히 널 비춰줄게 유리구슬로 깨지지 않을 구조물을 만들고자 한다.구조물은 다음과 같은 피라미드 격자의 (x, y)에 유리구슬을 놓아 만들어진다. (x, y는 0 이상의 정수)   y > 0인 좌표의 구조물이 깨지지 않도록 하기 위해서, 구조물은 다음 조건을 충족해야 한다. (x, y)에 유리구슬이 있으려면 (x, y − 1), (x + 1, y − 1)에 모두 유리구슬이 있어야 한다.구조물의 y = 0 부분의 정보가 주어졌을 때, y > 0인 곳에 유리구슬을 적절히 놓아 만들 수 있는 구조물의 유리구슬 개수의 최댓값을 구하여라. 입력첫째 줄에..
[BOJ/Silver 1] 백준 15900 나무 탈출(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/15900 문제평소에 사이가 좋지 않던 성원이와 형석이가 드디어 제대로 한 판 붙으려고 한다. 성원이와 형석이 둘과 모두 똑같이 친한 인섭이가 대결 종목을 정해 가져왔다. 바로 '나무 탈출' 이라는 보드게임이다.'나무 탈출' 은 N개의 정점이 있는 트리 모양으로 생긴 게임판과 몇 개의 게임말로 이루어진다. 트리의 각 정점에는 1번부터 N번까지 번호가 붙어있다. 1번 정점은 '루트 노드' 라고 불리며, 이 루트 노드를 중심으로 정점 간에 부모-자식 관계가 만들어진다. 자식이 없는 노드는 '리프 노드' 라고 불린다.이 게임은 두 사람이 번갈아 가면서 게임판에 놓여있는 게임말을 움직이는 게임이다. 처음에는 트리의 모든 리프 노드에 게임말이 하나..
[BOJ/Silver 2] 백준 14620 꽃길(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/14620 문제2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다.진아가 가진 꽃의 씨앗은 꽃을 심고나면 정확히 1년후에 꽃이 피므로 진아는 다음해 식목일 부터 꽃길을 걸을 수 있다.하지만 진아에게는 꽃의 씨앗이 세개밖에 없었으므로 세 개의 꽃이 하나도 죽지 않고 1년후에 꽃잎이 만개하길 원한다.꽃밭은 N*N의 격자 모양이고 진아는 씨앗을 (1,1)~(N,N)의 지점 중 한곳에 심을 수 있다. 꽃의 씨앗은 그림 (a)처럼 심어지며 1년 후 꽃이 피면 그림 (b)모양이 된다.  꽃을 심을 때는 주의할 점이있다. 어떤 씨앗이 꽃이 핀 뒤 다른 꽃잎(혹은 꽃술)과 닿..
[BOJ/Silver 1] 백준 1124 언더프라임(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/1124 문제자연수 X를 소인수분해하면, 곱해서 X가 되는 소수의 목록을 얻을 수 있다. 예를 들어, 12 = 2 × 2 × 3이다. 1은 소수가 아니다.어떤 수 X를 소인수분해 해서 구한 소수의 목록의 길이가 소수이면, 그 수를 언더프라임 이라고 한다. 12는 목록에 포함된 소수의 개수가 3개이고, 3은 소수이니 12는 언더프라임이다.두 정수 A와 B가 주어졌을 때, A보다 크거나 같고, B보다 작거나 같은 정수 중에서 언더프라임인 것의 개수를 구해보자. 입력첫째 줄에 두 정수 A와 B가 주어진다. 출력첫째 줄에 A보다 크거나 같고, B보다 작거나 같은 언더프라임 개수를 출력한다. 제한2 ≤ A ≤ B ≤ 100,000 예제 입력 12 ..
[BOJ/Silver 1] 백준 13335 트럭(Java)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/13335 문제강을 가로지르는 하나의 차선으로 된 다리가 하나 있다. 이 다리를 n 개의 트럭이 건너가려고 한다. 트럭의 순서는 바꿀 수 없으며, 트럭의 무게는 서로 같지 않을 수 있다. 다리 위에는 단지 w 대의 트럭만 동시에 올라갈 수 있다. 다리의 길이는 w 단위길이(unit distance)이며, 각 트럭들은 하나의 단위시간(unit time)에 하나의 단위길이만큼만 이동할 수 있다고 가정한다. 동시에 다리 위에 올라가 있는 트럭들의 무게의 합은 다리의 최대하중인 L보다 작거나 같아야 한다. 참고로, 다리 위에 완전히 올라가지 못한 트럭의 무게는 다리 위의 트럭들의 무게의 합을 계산할 때 포함하지 않는다고 가정한다.예를 들어, 다리..
[BOJ/Silver 1] 백준 1446 지름길(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/1446 문제매일 아침, 세준이는 학교에 가기 위해서 차를 타고 D킬로미터 길이의 고속도로를 지난다. 이 고속도로는 심각하게 커브가 많아서 정말 운전하기도 힘들다. 어느 날, 세준이는 이 고속도로에 지름길이 존재한다는 것을 알게 되었다. 모든 지름길은 일방통행이고, 고속도로를 역주행할 수는 없다.세준이가 운전해야 하는 거리의 최솟값을 출력하시오. 입력첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하인 양의 정수이고, D는 10,000보다 작거나 같은 자연수이다. 다음 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이가 주어진다. 모든 위치와 길이는 10,000보다 작거나 같은 음이 아닌 정수이다. 지..
[BOJ/Silver 1] 백준 14426 접두사 찾기(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/14426 문제문자열 S의 접두사란 S의 가장 앞에서부터 부분 문자열을 의미한다. 예를 들어, S = "codeplus"의 접두사는 "code", "co", "codepl", "codeplus"가 있고, "plus", "s", "cude", "crud"는 접두사가 아니다.총 N개의 문자열로 이루어진 집합 S가 주어진다.입력으로 주어지는 M개의 문자열 중에서 집합 S에 포함되어 있는 문자열 중 적어도 하나의 접두사인 것의 개수를 구하는 프로그램을 작성하시오. 입력첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다.다음 N개의 줄에는 집합 S에 포함되어 있는 문자열이 주어진다.다음 M개의 줄..
[BOJ/Silver 1] 백준 29634 Hotel(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/29634 문제Pavel was dreaming to become an architect since his early childhood. He often drew plans of buildings on sheets of paper, and sometimes on tables and walls. Now he has a university degree and is a famous architect.Once Pavel was digging in his child drawings and found an interesting plan of the hotel floor. The floor is a rectangle with size n×m meter..
[BOJ/Silver 3] 백준 11663 선분 위의 점(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/11663  문제일차원 좌표상의 점 N개와 선분 M개가 주어진다. 이때, 각각의 선분 위에 입력으로 주어진 점이 몇 개 있는지 구하는 프로그램을 작성하시오. 입력첫째 줄에 점의 개수 N과 선분의 개수 M이 주어진다. (1 ≤ N, M ≤ 100,000) 둘째 줄에는 점의 좌표가 주어진다. 두 점이 같은 좌표를 가지는 경우는 없다. 셋째 줄부터 M개의 줄에는 선분의 시작점과 끝점이 주어진다. 입력으로 주어지는 모든 좌표는 1,000,000,000보다 작거나 같은 자연수이다. 출력입력으로 주어진 각각의 선분 마다, 선분 위에 입력으로 주어진 점이 몇 개 있는지 출력한다. 예제 입력 15 51 3 10 20 301 1020 603 302 154..
[BOJ/Silver 2] 백준 11568 민균이의 계략(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/11568 문제민균이는 요즘 준민이를 놀리는 일에 재미가 들렸다. 오늘도 그는 준민이를 놀리기 위해 한가지 재미있는 아이디어를 떠올렸다. 그는 하나의 정수가 쓰여 있는 카드 N장을 준비하여 준민이에게 정해진 순서대로 보여줄 것이다. 준민이는 앞의 카드부터 임의의 개수만큼 골라서 민균이에게 제시하게 되는데, 제시한 카드의 수열이 순증가가 아니면 민균이에게 바보라고 놀림받게 된다. 예를 들어 민균이가 보여준 카드가 {4, 9, 10, 9} 일 때 준민이가 {4, 9}를 골랐다면 놀림을 받지 않겠지만, {4, 10, 9}이나 {9, 9}를 제시하면 놀림받게 될 것이다.생각보다 바보가 아닌 준민이는 한번도 민균이에게 놀림을 받지 않았다. 이에 분..