본문 바로가기

728x90

조합

[백준알고리즘] 2407번: 조합 -C++ [백준알고리즘] 2407번: 조합 -C++ 2407번: 조합 (acmicpc.net) 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 이번 문제는 다른 분의 코드를 참고해서 풀었다. - 참고 : [백준] 2407번 조합 - C++ - DGOS | 동꿀오소리 (donggoolosori.github.io) 문제를 보고, unsigned long long 이라도 연산 범위를 벗어날 것이라는 것은 알았다. 대충 \(100!/50!/50!\) 해봐도 결괏값이 어마어마하게 컸다. 하지만, 여기서 '문자열'로 큰 수 처리를 하는 것을 기억하지 못했다. 그래서 다른 분들의 코드를 참고했다. 아직 예전만큼 코테를 자연스럽게하려면 많이 남았다.. 더보기
[백준알고리즘] 2798번: 블랙잭 -Python, C++ [백준알고리즘] 2798번: 블랙잭 -Python, C++ 2798번: 블랙잭 (acmicpc.net) 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 저번에도 파이썬으로 풀었던 문제인데, 파이썬은 먼저 조합을 모두 구한 뒤 적절한 답을 찾았다면, 이번에 푼 C++은 약간 다르게 풀었다. BFS와 비슷하게 풀었으며, \(Queue\)를 사용했다. \(Queue\) 안에는 tuple을 사용해서 세 개의 값을 쌍으로 단위 처리했다. tuple 안에는 (카드 선택 횟수, 현재까지 선.. 더보기
[백준알고리즘] 10448번: 유레카 이론 -Python [백준알고리즘] 10448번: 유레카 이론 -Python https://www.acmicpc.net/problem/10448 10448번: 유레카 이론 문제 삼각수 Tn(n ≥ 1)는 [그림]에서와 같이 기하학적으로 일정한 모양의 규칙을 갖는 점들의 모음으로 표현될 수 있다. [그림] 자연수 n에 대해 n ≥ 1의 삼각수Tn는 명백한 공식이 있다. Tn = 1 + 2 + 3 + ... + n = n(n+1)/2 1796년, 가우스는 모든 자연수가 최대 3개의 삼각수의 합으로 표현될 수 있다고 증명하였다. 예를 들어, 4 = T1 + T2 5 = T1 + T1 + T2 6 = T2 + T2 or 6 = T www.acmicpc.net 문제 분류는 브루트포스로 되어있다. 문제를 푼 방식은 간단하다. 1번 만.. 더보기
[백준알고리즘] 1010번: 다리 놓기 -Python [백준알고리즘] 1010번: 다리 놓기 -Python https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 이번 문제는 조합으로 풀면 간단하게 해결할 수 있다. 문제는 왼쪽의 N개의 사이트에서 오른쪽의 M개의 사이트를 결정할 때 N개의 다리가 서로 교차되지 않게 정해야 한다. 즉 M개 중에서 N개를 선택하는 조합의 문제이다. 여기서 이것이 왜 조합이냐면 M개 중에서 N개를 선택한 후 차례대로 N개의 왼쪽 사이트에 순서대로 맞춰주기만 하면 되기 때문이.. 더보기
[백준알고리즘] 11727번: 2xN 타일링 2 -Python [백준알고리즘] 11727번: 2xN 타일링 2 -Python https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. www.acmicpc.net 이전과 똑같이 두가지 방법으로 풀었다. 이전 문제인 11726번 문제 풀이와 거의 같다. 아무튼 이전 글을 거의 복사해서 써야겠다. ㅎㅎ 이번 문제에서는 첫 번째 방법의 설명이 조금 난해한 것 같아 두 번째 방법을 보고 첫 번째 방법을 봐도 괜찮을 것 같고.. 그렇다... 두 번째 방법을 보면 첫 번째 방법을 안 볼 것 같지만 말이다. 첫 번째 방법. 우선 첫 번째 방법은 Combination을 사용했다. N을 1부터 늘려.. 더보기
[백준알고리즘] 11726번: 2xN 타일링 -Python [백준알고리즘] 11726번: 2xN 타일링 -Python https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 우선 이 문제를 풀 때 두 가지 방법으로 해결했다. 첫 번째 방법은 직접 푼 방법이고, 두 번째 방법은 문제를 해결하고 다른 사람들의 코드를 보니 다 똑같길래 이유를 이해하고 따라한 코드다. 두 번째 방법이 훨씬 쉽다. 첫 번째 방법. 우선 첫 번째 방법은 Combination을 사용했다. 그림까지 하기는 너무 오래 걸릴 것 같다.. N을 1부터 늘려가며 생각.. 더보기
[백준알고리즘] 9375번: 패션왕 신해빈 -Python [백준알고리즘] 9375번: 패션왕 신해빈 -Python https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 문제 해빈이는 패션에 매우 민감해서 한번 입었던 옷들의 조합을 절대 다시 입지 않는다. 예를 들어 오늘 해빈이가 안경, 코트, 상의, 신발을 입었다면, 다음날은 바지를 추가로 입거나 안경대신 렌즈를 착용하거나 해야한다. 해빈이가 가진 의상들이 주어졌을때 과연 해빈이는 알몸이 아닌 상태로 며칠동안 밖에 돌아다닐 수 있을까? 입력 첫째 줄에 테스트 케이스가 주어진다. 테스트 케이스는 최대 100이다. 각 테스트 케이스의 첫째 줄에는 해빈이가 가진 의상의 수 www.acmicpc.net 이 문제는 공식만 찾으면 바로 풀 수 있는 문제라고 생각한다. 처음에 무슨 .. 더보기

728x90