본문 바로가기

재귀16

[백준 2630] 색종이 만들기 www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net divide and conquer로 카테고리로 분리가 되어있지만 재귀함수를 사용하자... #include using namespace std; int n; int arr[129][129]; int res[2]; bool isValid(int x, int y, int len) { int cmp = arr[x][y]; for (int i = x; i < x + len; i++) { for.. 2021. 1. 27.
[백준 9184] 신나는 함수 실행 www.acmicpc.net/problem/9184 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net 바본가...출력 형식을 무시해서 이유없이 코드를 고쳤다.... 문제에서도 나와있지만: 재귀함수로는 어렵지 않지만 시간 초과가 발생하는 문제이다. 그럼 당연 dp지 라고 생각했지만 확신은 없었다 ㅋㅋㅋㅋㅋㅋ 3차원 배열..?진짜..? 진짜였다. 주어진 조건대로 1. 셋 중 하나라도 0이하 -> return 1 2. 셋 중 하나라도 20이상 -> w(20, 20, 20) 호출 3. a 2021. 1. 13.
[백준 2448] 별 찍기 - 11 www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 재귀를 사용하는 문제이다. 종료조건을 높이가 3인 삼각형으로 두고 재귀를 진행한다. 삼각형이 시작하는 row, col을 받아서 재귀를 진행한다. 가장 큰 삼각형은 시작점이 (0,0)이므로 0,0과 입력받은 값을 높이로 재귀 함수를 시작한다. #include #include using namespace std; int n; char star[3 2020. 12. 29.
[백준 1629] 곱셈 www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 모듈러 연산과 제곱 빠르게 하기 응용버전이다. 제곱빠르게 하기는 재귀로도 풀 수 있기 때문에 이전에 풀었던 관련 문제를 참고한다. 이전 포스팅 참고 eazymean.tistory.com/192?category=883575 리트코드에서 동일한 문제를 푼 경험이 있다. 모듈러 연산에 대해서 짚고 넘어가자면 (a*b) mod n = ((a mod n) * (b mod n)) mod n이다. 문제에서 주어진 a,b,c의 범위가 상당히 크므로 long long으로 선언해도 오버플로우가.. 2020. 12. 13.