본문 바로가기

c++

(2)
프로그래머스 풍선 터트리기 문제 https://programmers.co.kr/learn/courses/30/lessons/68646 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 풍선 값들이 주어지고 인접한 풍선 2개를 골라서 터트리면서 남을 수 있는 마지막 한 개의 풍선의 개수를 찾는 문제입니다. 조건으로 두 가지가 있는데, 일단 두 풍선에서 무조건 큰 값을 가진 풍선을 터트릴 수 있습니다. 거기에 또 다른 조건은 전체 배열에서 인접한 풍선 2개를 선택했을 때 딱 한 번만 작은 값을 가진 풍선을 터트릴 수 있습니다. 주어진 예시에서 가능한 경우의 수들을 먼저 찾는게 우선인 것 같습니다. 최종으로 남을 수 있는 풍선의 경우의 수를 찾는 것..
백준 합분해 2 13707 (c++) 문제 https://www.acmicpc.net/problem/13707 13707번: 합분해 2 첫째 줄에 두 정수 N(1 ≤ N ≤ 5,000), K(1 ≤ K ≤ 5,000)가 주어진다. www.acmicpc.net 오랜만에 c++로 문제 풀려고 풀어봤다. dp로 풀었기 때문에 점화식만 구하면 쉽게 풀 수 있는 문제였다. 재귀로 풀어서 좀 오래 걸린 것도 있고, 다른 사람들 코드 보니까 더 간단하게 풀기도 했다. 점화식은 다음과 같다. arr [k][n]으로 놓고 k개를 사용해서 n을 만들 수 있는 경우의 수를 구하면 된다. arr [k][n] = arr [k-1][0]+ arr [k-1][1].... arr [k-1][n] 이런 식으로 되는데 더하는 경우가 각각 마지막에 n, n-1, n-2.....