Java+Python으로 순열/조합/중복순열/중복조합 구현하기 [Java+Python]15649번, N과 M(1), 순열 [Java+Python]15650번, N과 M(2), 조합 [Java+Python]15651번, N과 M(3), 중복순열 [Java+Python]15652번, N과 M(4), 중복조합 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안 되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사..
문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N장의 카드에 써져 있는 숫자가 주어졌을 때, M..
Java+Python으로 더 간결하게 순열/조합/중복순열/중복조합 구현하기 [Java+Python]15649번, N과 M(1), 순열 [Java+Python]15650번, N과 M(2), 조합 [Java+Python]15651번, N과 M(3), 중복순열 [Java+Python]15652번, N과 M(4), 중복조합 순열(Permutation) 순열은 서로 다른 n개의 원소에서 r개를 중복 없이, 순서에 상관있게 뽑아 나열하는 것이다. nPr의 형태로 자주 표현되며, 그 경우의 수는 아래와 같다. 순열을 탐색할 땐 재귀 함수로 표현하는 것이 편한데, 이 경우 해당 인덱스의 숫자가 사용 중인지 판단하는 배열이 따로 필요하다. 이미 뽑은 숫자라면 넘어가야 하기 때문이다. import java.util.Arr..
완전 탐색이란 컴퓨터의 성능을 믿고 모든 경우의 수를 다 체크하는 방법이다. 상대적으로 구현이 간단하고, 해가 존재한다면 반드시 찾을 수 있는 방법이기도 하다. 예를 들어 숫자 4자리로 구성된 자물쇠의 암호를 푼다면, '0000'부터 '9999'까지 다 넣어보는 방식이다. 당연하게도 최적의 솔루션을 제공해주지 않으며, 때문에 다음 두 상황에 주로 쓰인다. 적용 가능한 다른 알고리즘이 없을 때 복수의 솔루션을 확인해야 할 때 예를 들어 책 한 권이 주어지고 그 책에서 '고양이'라는 단어를 찾아야 한다고 가정해보자. 책은 당연하게도 단어들이 정렬되어 있지 않으므로 처음부터 끝까지 단어를 비교하는 수밖에 없다. 이럴 때 사용되는 것이 완전 탐색 알고리즘이며, 이 경우 시간 복잡도는 O(n)이다. 계속해서 완전..
- Total
- Today
- Yesterday
- 세계여행
- 유럽여행
- 리스트
- 남미
- 세계일주
- 지지
- 야경
- 칼이사
- 스트림
- Python
- 여행
- 중남미
- 파이썬
- 맛집
- 스프링
- 면접 준비
- 알고리즘
- 백준
- spring
- 동적계획법
- Backjoon
- RX100M5
- java
- 유럽
- 세모
- BOJ
- a6000
- 자바
- Algorithm
- 기술면접
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |