728x90
반응형

백준 207

[C/C++] 백준 - 1106번 : 호텔

https://www.acmicpc.net/problem/1106 1106번: 호텔 첫째 줄에 C와 형택이가 홍보할 수 있는 도시의 개수 N이 주어진다. C는 1,000보다 작거나 같은 자연수이고, N은 20보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 각 도시에서 홍보할 때 www.acmicpc.net 문제 세계적인 호텔인 형택 호텔의 사장인 김형택은 이번에 수입을 조금 늘리기 위해서 홍보를 하려고 한다. 형택이가 홍보를 할 수 있는 도시가 주어지고, 각 도시별로 홍보하는데 드는 비용과, 그 때 몇 명의 호텔 고객이 늘어나는지에 대한 정보가 있다. 예를 들어, “어떤 도시에서 9원을 들여서 홍보하면 3명의 고객이 늘어난다.”와 같은 정보이다. 이때, 이러한 정보에 나타난 돈에 정수배 만큼을 ..

BOJ/DP 2022.02.02

[C/C++] 백준 - 20924번 : 트리의 기둥과 가지

문제 시청 공무원 마이크로는 과장으로부터 시에 있는 나무의 기둥의 길이와 가장 긴 가지의 길이를 파악하라는 업무 지시를 받았다. 마이크로는 ICPC Sinchon Winter Algorithm Camp에서 배운 트리 자료 구조를 이용하면 이 작업을 좀 더 수월하게 할 수 있으리라 판단했다. 마이크로는 트리의 기둥과 가지를 분류하기 위해 기가 노드를 추가로 정의하였다. 기가 노드는 루트 노드에서 순회를 시작했을 때, 처음으로 자식 노드가 2$2$개 이상인 노드다. 기둥-가지를 줄여 기가 노드라 이름 붙였다. 위 그림에서 기가 노드는 4$4$번 노드다. 단, 위 그림과 같이 리프 노드가 단 1$1$개인 경우 리프 노드가 동시에 기가 노드가 된다. 또한, 위 그림과 같이 루트 노드가 동시에 기가 노드인 경우도..

BOJ/트리 2022.01.31

[C/C++] 백준 - 17484번 : 진우의 달 여행

https://www.acmicpc.net/problem/17484 17484번: 진우의 달 여행 (Small) 첫줄에 지구와 달 사이 공간을 나타내는 행렬의 크기를 나타내는 N, M (2≤ N, M ≤ 6)이 주어진다. 다음 N줄 동안 각 행렬의 원소 값이 주어진다. 각 행렬의 원소값은 100 이하의 자연수이다. www.acmicpc.net 문제 우주비행이 꿈이였던 진우는 음식점 '매일매일싱싱'에서 열심히 일한 결과 달 여행에 필요한 자금을 모두 마련하였다! 지구와 우주사이는 N X M 행렬로 나타낼 수 있으며 각 원소의 값은 우주선이 그 공간을 지날 때 소모되는 연료의 양이다. [예시] 진우는 여행경비를 아끼기 위해 조금 특이한 우주선을 선택하였다. 진우가 선택한 우주선의 특징은 아래와 같다. 1. ..

BOJ/DP 2022.01.28

[C/C++] 백준 - 14606번 : 피자(Small)

https://www.acmicpc.net/problem/14606 14606번: 피자 (Small) 예제1의 입력이 1이므로, 게임 시작부터 갑이 분리할 수 있는 피자탑이 없습니다. 따라서 갑이 얻는 즐거움은 0입니다. 예제2의 정답 3은 다음과 같은 과정을 통해 얻어집니다. 먼저 놀이를 시작 www.acmicpc.net 문제 갑은 아주대학교 학생입니다. 갑은 팔달관 1층에서 학과 개강총회를 준비하고 있습니다. 갑은 피자를 N 판 시켰습니다. 식탁 위에 피자 N 판이 탑처럼 쌓여있습니다. 갑은 높이가 N 인 이 한 피자탑을, 높이가 1인 피자탑들로 분리시켜야 합니다. 갑은 이 일을 하기 싫었습니다. 하지만 다음과 같은 격언이 ..

BOJ/DP 2022.01.28

[C/C++] 백준 - 14719번 : 빗물

https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 문제 2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다. 비는 충분히 많이 온다. 고이는 빗물의 총량은 얼마일까? 간단한 시물레이션 문제이다. 높이가 가장 큰 블록을 X라고 하면 왼쪽끝에서부터 X까지 빗물의 양 + 오른쪽 끝에서부터 X까지 빗물의 양을 더하는 방식으로 쉽게 구현할 수 있다. 나는 재귀의 형태로 구현하였다. #include #include #in..

BOJ/시물레이션 2022.01.20

[C/C++] 백준 - 11060번 : 점프 점프

https://www.acmicpc.net/problem/11060 11060번: 점프 점프 재환이가 1×N 크기의 미로에 갇혀있다. 미로는 1×1 크기의 칸으로 이루어져 있고, 각 칸에는 정수가 하나 쓰여 있다. i번째 칸에 쓰여 있는 수를 Ai라고 했을 때, 재환이는 Ai이하만큼 오른쪽으로 www.acmicpc.net 문제 재환이가 1×N 크기의 미로에 갇혀있다. 미로는 1×1 크기의 칸으로 이루어져 있고, 각 칸에는 정수가 하나 쓰여 있다. i번째 칸에 쓰여 있는 수를 Ai라고 했을 때, 재환이는 Ai이하만큼 오른쪽으로 떨어진 칸으로 한 번에 점프할 수 있다. 예를 들어, 3번째 칸에 쓰여 있는 수가 3이면, 재환이는 4, 5, 6번 칸 중 하나로 점프할 수 있다. 재환이는 지금 미로의 가장 왼쪽 ..

BOJ/DP 2022.01.18

[C/C++] 백준 - 15961번 : 회전 초밥

https://www.acmicpc.net/problem/15961 15961번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 3,000,000, 2 ≤ d ≤ 3,000, 2 www.acmicpc.net 먹을 수 있는 초밥의 최대 가짓수를 구하는 문제인데 이벤트에 참여하여 K개의 연속 초밥을 먹었을 때 쿠폰 번호 C초밥을 먹지 않았다면 C초밥까지 더 먹을 수 있다. 가짓수를 구하는 문제인데 계속 다른 걸 구해서 뻘짓한 문제이다. 투포인터로 한 바퀴만 돌리는 로직으로 구현해보았다. visited변수를 통해 먹는 초밥의 개수를 저장해주었고 k개 구간에 해당..

BOJ/투포인터 2022.01.17

[C/C++] 백준 - 1789번 : 수들의 합

https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 문제 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 간단한 수학 문제이다. 단, 주의해야할 점이 S보다 작은 수가 아닌 S와 같은 값이 나와도 된다. 딱 보고 떠올라야하는 공식은 1부터 N까지 모두 더한 값이 -> N * (N + 1) / 2 이걸 먼저 떠올려야한다. 그래서 주어진 S에 2를 곱한 후 그것의 제곱근을 먼저 파악한다. 그리고 그 제곱근을 위 공식에 대입해 계산한 값이 S보다 크면 이보다 1 작은 값이 정답이 될 수 밖에 없다. #include #inclu..

BOJ/이분 탐색 2022.01.14

[C/C++] 백준 - 12014번 : 주식

https://www.acmicpc.net/problem/12014 12014번: 주식 입력 파일에는 여러 테스트 메이스가 포함될 수 있다. 파일의 첫째 줄에 케이스의 개수 T(2 ≤ T ≤ 100)가 주어지고, 이후 차례로 T 개 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 줄에 두 www.acmicpc.net N일 동안 주식을 K일 동안 살건데, K일 동안의 주식 가격은 모두 상승세이어야한다. 가장 긴 증가하는 부분 수열을 구했을 때 길이가 K를 만족하면 위 조건을 만족하고, K일 간의 가장 긴 증가하는 부분 수열을 구하지 못한다면 K일 동안 주식을 살 수 없다. 즉, 가장 긴 증가하는 부분 수열 알고리즘을 이용하여 길이만 만족하는지 확인하면 되는 문제 LIS알고리즘은 이분 탐색을 응용한 O(n..

BOJ/DP 2022.01.13

[C/C++] 백준 - 2011번 : 암호코드

https://www.acmicpc.net/problem/2011 2011번: 암호코드 나올 수 있는 해석의 가짓수를 구하시오. 정답이 매우 클 수 있으므로, 1000000으로 나눈 나머지를 출력한다. 암호가 잘못되어 암호를 해석할 수 없는 경우에는 0을 출력한다. www.acmicpc.net 문제 상근이와 선영이가 다른 사람들이 남매간의 대화를 듣는 것을 방지하기 위해서 대화를 서로 암호화 하기로 했다. 그래서 다음과 같은 대화를 했다. 상근: 그냥 간단히 암호화 하자. A를 1이라고 하고, B는 2로, 그리고 Z는 26으로 하는거야. 선영: 그럼 안돼. 만약, "BEAN"을 암호화하면 25114가 나오는데, 이걸 다시 글자로 바꾸는 방법은 여러 가지가 있어. 상근: 그렇네. 25114를 다시 영어로 ..

BOJ/DP 2022.01.12
728x90
반응형