문제
-
SWEA 4168 : 삼성이의 쇼핑 ( 비트마스크 + 조합 연습 )백준 문제풀이/Dynamic Programming 2020. 5. 20. 14:00
문제 문제 풀어보기 (로그인 후 접속 가능) 풀이 냅색 문제에서 비트 마스크를 사용하여 선택한 물건들을 출력할 수 있도록 하였습니다. 냅색 알고리즘은 배낭문제에서 나온 기법인데 생각보다 자주 나오는 유형입니다. 최대의 만족도를 구하는 방법은 냅색을 이용해서 구하게 됩니다. 그리고 만족도를 인덱스로 하는 배열에 비트 마스크를 저장합니다. 출력 과정에서 정답이 되는 만족도에 있는 비트 마스크를 통해 어떤 옷을 선택했는지 출력합니다. 코드 #include #include #include #include using namespace std; int max(int a, int b) { if (a > b) return a; else return b; } int T; int ans; int n, m; int v[26..
-
[Python] 벌써 백준문제 풀어보기프로그래밍/Python & Ruby 2020. 3. 4. 15:05
프로그래밍을 공부하다 보면 한 번쯤 들어보는 단어 백.준. 아마 이미 알고 있으신 분들이 많겠죠!! 맞습니다 코딩 문제들을 푸는 사이트인데요 앞에서 두 개의 글만 보고 저희는 백준에 올라와있는 문제를 꽤 많이 풀 수 있게 됐습니다. https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net 마치 RPG 게임의 시작 마을과도 같은 Hello World 이거 하나만 출력해주면 답이 해결됩니다. 우리는 이미 입출력을 할 줄 압니다. print("Hello World!") 너무 간단하게 첫 번째 문제가 해결됐습니다. ※ 제출방법은 왼쪽 상단에 을 클릭한후 언어를 Python 3 으로 ..
-
[DP] BOJ 9465 : 스티커백준 문제풀이/Dynamic Programming 2019. 8. 30. 21:57
문제 상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다. 상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다. 모든 스티커를 붙일 수 없게된 상냥이는 각 스티커에 점수를 매기고, 점수의 합이 최대가 되게 스티커를 떼어내려고 한다. 먼저, 그림 (b)와 같이 각 스티커에 점수를 매겼다. 상냥이가 뗄 수 있는 스티커의 점수의 최댓값을 구하는 프로그램을 작성하시오. 즉, 2n개의 스티커 중에서 점수의 합이 최대가 되면서 ..
-
[DP] BOJ 2193 : 이친수백준 문제풀이/Dynamic Programming 2019. 8. 30. 01:01
문제 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되므로 이친수가 아니다. N(1 ≤ N ≤ 90)이 주어졌을 때, N자리 이친수의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. 출력 첫째 줄에 N자리 이친수의 개수를 출력한다. 풀이 문제 풀이 순서 < Bottom Up 방식 ..