전체 글(178)
-
Week 4 (Dp) - 문제 9461번 (파도반 수열)
문제: 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오. 입력: 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100) 출력: 각 테스트 케이스마다 P(N)을 출력한다. 예제 입력1: 2 6 12 예제 출..
2023.07.28 -
Week 4 (Dp) - 문제 10844번 (피보나치 함수)
문제: 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다. fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출한다. 두 번째 호출한 fibonacci(1)은 1을 출력하고 1을 리턴한다. fibonacci(0)은..
2023.07.27 -
Week 4 (Dp) - 문제 10844번 (쉬운 계단 수)
문제: 45656이란 수를 보자. 이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다. N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단수가 아니다. 입력: 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 출력: 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. 예제 입력1: 1 예제 출력1: 9 예제 입력2: 2 예제 출력2: 17 코드: #include using namespace std; long long dp0[101];//마지막 숫자가 총 몇 개 나오는지 저장해주는 배열 long long dp1[101]; long long dp2[101]; long long dp3[..
2023.07.26 -
Week 4 (Dp) - 문제 1052번 (카드 구매하기)
문제: 요즘 민규네 동네에서는 스타트링크에서 만든 PS카드를 모으는 것이 유행이다. PS카드는 PS(Problem Solving)분야에서 유명한 사람들의 아이디와 얼굴이 적혀있는 카드이다. 각각의 카드에는 등급을 나타내는 색이 칠해져 있고, 다음과 같이 8가지가 있다. 전설카드 레드카드 오렌지카드 퍼플카드 블루카드 청록카드 그린카드 그레이카드 카드는 카드팩의 형태로만 구매할 수 있고, 카드팩의 종류는 카드 1개가 포함된 카드팩, 카드 2개가 포함된 카드팩, ... 카드 N개가 포함된 카드팩과 같이 총 N가지가 존재한다. 민규는 카드의 개수가 적은 팩이더라도 가격이 비싸면 높은 등급의 카드가 많이 들어있을 것이라는 미신을 믿고 있다. 따라서, 민규는 돈을 최대한 많이 지불해서 카드 N개 구매하려고 한다. ..
2023.07.26 -
자료 구조 그래프
그래프란? 그래프는 정점과 간선으로 구성하는 자료구조를 뜻한다. 그래프와 관련된 용어 정리 정점 (Vertex) : Node라는 용어를 사용하기도 한다. 위 사진에서 숫자가 있는 동그라미 즉, 각 지점을 의미한다. 간선 (Edge or Link) : 보통 Edge라고 한다. 두 정점끼리의 연결된 선을 의미한다. 화살표 표시가 된 선도 있고, 없는 것도 있는데, 둘 다 간선이다. 가중치 : 간선 위에 표시된 숫자이다. 보통 간선을 타고 이동할 때, 얼마나 중요한지 순서를 나타냈다고 보면 된다. 비용 같은 것들을 예시로 들 수 있다. 가중치가 없는 그래프들은 모두 가중치가 동일한 그래프이다. Directed Graph (유향 그래프) : 위 사진에서 오른쪽 그래프처럼 간선에 방향성이 있는 그래프이다. Und..
2023.07.25 -
Week 4 (Dp) - 문제 9465번 (스티커)
문제: 상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다. 상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다. 모든 스티커를 붙일 수 없게된 상냥이는 각 스티커에 점수를 매기고, 점수의 합이 최대가 되게 스티커를 떼어내려고 한다. 먼저, 그림 (b)와 같이 각 스티커에 점수를 매겼다. 상냥이가 뗄 수 있는 스티커의 점수의 최댓값을 구하는 프로그램을 작성하시오. 즉, 2n개의 스티커 중에서 점수의 합이 최대가 되면서..
2023.07.25