반응형

분류 전체보기 43

[백준 BOJ 1654번] 랜선 자르기 (C / C++ ) [이분 탐색, 이진 탐색]

1654번: 랜선 자르기 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2초 128MB 63987 14056 9131 20.260% 더보기 백준 BOJ 1654 랜선 자르기 C++ 알고리즘 C언어 이분 탐색 이진 탐색 바이너리 서치 binary searach 문제 집에서 시간을 보내던 오영식은 박성원의 부름을 받고 급히 달려왔다. 박성원이 캠프 때 쓸 N개의 랜선을 만들어야 하는데 너무 바빠서 영식이에게 도움을 청했다. 이미 오영식은 자체적으로 K개의 랜선을 가지고 있다. 그러나 K개의 랜선은 길이가 제각각이다. 박성원은 랜선을 모두 N개의 같은 길이의 랜선으로 만들고 싶었기 때문에 K개의 랜선을 잘라서 만들어야 한다. 예를 들어 300cm 짜리 랜선에서 140cm 짜리..

백준 2021.03.15

[백준 BOJ 1753번] 최단경로 (C / C++ ) [다익스트라]

1753번: 최단경로 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 256MB 81991 21765 10499 23.352% 문제 방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성하시오. 단, 모든 간선의 가중치는 10 이하의 자연수이다. 입력 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. 셋째 줄부터 E개의 줄에 걸쳐 각 간선을 나타내는 세 개의 정수 (u, v, w)가 순서대로 주어진다. 이는 u에서 v로 가는 가중치 w인 간선이 존재한다는 ..

백준 2021.03.13

[백준 BOJ 14495번] 피보나치 비스무리한 수열 (C / C++ ) [DP, 다이나믹 프로그래밍]

14495번: 피보나치 비스무리한 수열 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2초 512MB 1865 1002 909 55.630% 문제 피보나치 비스무리한 수열은 f(n) = f(n-1) + f(n-3)인 수열이다. f(1) = f(2) = f(3) = 1이며 피보나치 비스무리한 수열을 나열하면 다음과 같다. 1, 1, 1, 2, 3, 4, 6, 9, 13, 19, ... 자연수 n을 입력받아 n번째 피보나치 비스무리한 수열을 구해보자! 입력 자연수 n(1n; for(int i=3;i

백준 2021.03.10

[백준 BOJ 15624번] 피보나치 수 7 (C / C++ ) [DP, 다이나믹 프로그래밍]

1564번: 피보나치 수 7 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 (추가 시간 없음) 512MB 1488 731 595 57.322% 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. n은 1..

백준 2021.03.10

[백준 BOJ 2775번] 부녀회장이 될테야 (C / C++ ) [수학]

2775번: 부녀회장이 될테야 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128MB 32675 18474 16153 57.660% 문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층..

백준 2021.03.10

[백준 BOJ 2309번] 일곱 난쟁이 (C / C++ ) [브루트포스 알고리즘]

2309번: 일곱 난쟁이 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2초 128MB 54046 22423 16687 43.911% 문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 문제 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 ..

백준 2021.03.10

[백준 BOJ 1309번] 동물원 (C / C++ ) [DP, 다이나믹 프로그래밍]

1309번: 동물원 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2초 128MB 13927 7115 5606 49.180% 문제 어떤 동물원에 가로로 두칸 세로로 N칸인 아래와 같은 우리가 있다. 이 동물원에는 사자들이 살고 있는데 사자들을 우리에 가둘 때, 가로로도 세로로도 붙어 있게 배치할 수는 없다. 이 동물원 조련사는 사자들의 배치 문제 때문에 골머리를 앓고 있다. 동물원 조련사의 머리가 아프지 않도록 우리가 2*N 배열에 사자를 배치하는 경우의 수가 몇 가지인지를 알아내는 프로그램을 작성해 주도록 하자. 사자를 한 마리도 배치하지 않는 경우도 하나의 경우의 수로 친다고 가정한다. 입력 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. 출력 첫째 줄..

백준 2021.03.08

[백준 BOJ 9655번] 돌 게임 (C++ ) [DP, 다이나믹 프로그래밍]

9655번: 돌 게임 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 128MB 7847 5119 4513 66.731% 문제 돌 게임은 두 명이서 즐기는 재밌는 게임이다. 탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다. 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다. 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000) 출력 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. 예제 입력 1 5 예제 출력 1 SK 풀이 이게 DP로 풀 문제인가 싶다. 짝수..

백준 2021.03.06

[백준 BOJ 11725번] 트리의 부모 찾기 (C++ ) [트리/DFS/BFS]

11725번: 트리의 부모 찾기 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 256MB 19371 8219 6123 43.364% 문제 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 출력 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다. 예제 입력 1 7 1 6 6 3 3 5 4 1 2 4 4 7 예제 출력 1 4 6 1 3 1 4 예제 입력 2 12 1 2 1 3 2 4 3 5 3 6 4 7 4 8 5 9..

백준 2021.03.05

[백준 BOJ 10816번] 숫자 카드 2 (C / C++ )

10816번: 숫자 카드 2 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 256MB 30700 10788 7709 35.568% 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 ..

백준 2021.03.04
반응형