Computer Science/백준 Boj
-
[백준, 백트래킹] 연산자 끼워넣기Computer Science/백준 Boj 2023. 11. 6. 17:22
https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net 접근법 DFS로 풀이하고, 두번째 줄에 주어지는 입력의 수 만큼 연산이 완료되면 최소값과 최대값을 비교한다. 이 때 최솟값은 -10억 미만이 될 수 없으므로 10억, 최댓값은 10억을 초과 할 수 없으므로 -10억으로 초기화한다. 풀이 위의 그림 같이 연산자를 앞에 것 부터 순차적으로 번갈아가며 사용했다. 예를들면 깊이가 1일 때 '+',..
-
[백준, 별 찍기]Computer Science/백준 Boj 2023. 11. 6. 16:52
https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 접근법 재귀를 통해서 풀고, 가운데 부분은 별을 그리지 않을 것이므로 재귀를 사용하지 않는다. N이 3이 되는 순간 별을 그린다. if (3 == N) { print_star(star, sColumn, eColumn, sRow, eRow); return; } N != 3이면 3분할 후 3번의 재귀를 호출한다. i와 j가 1인 경우는 재귀를 호출하지 않는다. if (i =..
-
[백준 재귀] 하노이 탑 이동 순서 C++ (복습 필요)Computer Science/백준 Boj 2023. 10. 28. 02:10
시간 복잡도는 이해가 안갔다. 탑이 2개 일 때 옮기는 알고리즘이 재귀적으로 일어나야 하기 때문에 2인 경우를 예로 문제를 풀었다. 1 2 1 3 2 3 위 순서 대로 출력어야 하므로 입력 인자가 a b c 순서로 주어지면 a -> b , a -> c(출력), b ->c 순서로 알고리즘을 짯다. #include #include using namespace std; void hanoi(int start, int mid, int end, int n) { if (n == 1) { cout
-
[백준, DP] 연속합 C++(복습필요)Computer Science/백준 Boj 2023. 10. 24. 19:53
https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 접근법 인덱스 계산 기억값 최대값 1 10 - 4 6 10 2 6 + 3 9 10 3 9 + 1 10 10 4 10 + 5 15 15 5 15 + 6 21 21 6 21 - 35 -14 21 7 -14 + 12 12 21 8 12 + 21 33 33 9 33 - 1 32 33 #include #include using namespace std; int main() { int n = 0; int answer ..
-
[백준 조합] 제출 C++Computer Science/백준 Boj 2023. 10. 23. 21:18
https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net #include #include using namespace std; int factorial(int N) { if(N == 1 || N == 0) return 1; return N * factorial(N - 1); } int main() { int N = 0; int M = 0; cin >> N >> M; cout
-
[백준 조합] 팩토리얼 C++Computer Science/백준 Boj 2023. 10. 23. 21:17
https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net #include #include using namespace std; int factorial(int N) { if(N == 1 || N == 0) return 1; return N * factorial(N - 1); } int main() { int N = 0; cin >> N; cout
-
[백준 조합] 녹색거탑 C++Computer Science/백준 Boj 2023. 10. 23. 21:15
https://www.acmicpc.net/problem/24723 24723번: 녹색거탑 Naver D2를 아시나요? D2는 For Developers, By Developers의 약자로, 개발자들을 위해 개발자들이 직접 만들어 가고 있는 네이버 개발자 지원 프로그램입니다. 네이버가 축적한 기술과 지식을 공유하고, 외 www.acmicpc.net #include #include using namespace std; int main() { int N; cin >> N; cout
-
[백준 조합] 베라의 패션 C++Computer Science/백준 Boj 2023. 10. 23. 21:15
https://www.acmicpc.net/problem/15439 15439번: 베라의 패션 베라는 상의 N 벌과 하의 N 벌이 있다. i 번째 상의와 i 번째 하의는 모두 색상 i를 가진다. N 개의 색상은 모두 서로 다르다. 상의와 하의가 서로 다른 색상인 조합은 총 몇 가지일까? www.acmicpc.net #include #include using namespace std; int main() { int N = 0; cin >> N; cout