목록알고리즘 문제 풀이/BOJ 문제 풀이 (32)
굥뷰를 햡시댜
https://www.acmicpc.net/problem/17839 17839번: Baba is Rabbit 문제 원이는 요즘 유행하는 게임을 하고 있다. 이 게임은 is 라는 단어를 이용해 어떤 사물을 다른 사물로 바꿀 수 있다. 규칙은 다음과 같다. 게임 시작 시 몇 개의 명령을 설정해놓는다. 이 때, 모든 명령의 형태는 p is q 의 형태이며, p, q는 사물이다. 두 사물 p, q에 대해 p is q 라는 명령은 사물 p를 사물 q로 바꾼다. 이러한 행위를 명령을 적용한다고 부른다. 어떤 사물 p에 대해 적용할 수 있는 명령이 두 가지 이상이면, 그 중 www.acmicpc.net 문자열과 완전 탐색 알고리즘을 응용해보기 위한 문제인것 같다. 처음 입력을 받으면서 하나의 map을 생성해주었다. ..
https://www.acmicpc.net/problem/15666 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 중복된 값을 허용하지 않은 중복 조합 문제 입니다. 풀이 방법은 중복 조합을 먼저 구현하고 N과 M(11)과 비슷한 방식으로 풀었습니다. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; int n, m; vector vec, sel; map dict; void..
https://www.acmicpc.net/problem/15665 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 중복된 값을 허락하지 않는 중복 순열 입니다. dfs와 백트래킹으로 중복 순열을 구현했고 중복된 값의 처리는 map을 이용했습니다. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; int n, m; vector vec, sel; map dict; void df..
https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 중복된 값을 허락하지 않고 뽑는 조합 입니다. 중복된 값을 처리하는 방법으로 map을 사용했습니다. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; int n, m; vector vec, sel; map dict; void dfs(int node) { if (..
https://www.acmicpc.net/problem/15663 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 순열인데 중복되는 것들을 제외하여 값을 출력하는 문제 입니다. n개에서 m개를 선택했을 때 최초의 경우로 생성된 값일 경우 출력하고 이미 출력된 적이 있을 경우 그냥 넘겨주기만 하면 됩니다. 문제는 기존에 생성된 값인지 아닌지 여부를 판단하는 것인데 저는 map을 사용했습니다. 나머지는 백트래킹으로 순열을 구현해서 어려움은 없었습니다. #define _CRT_SECURE_NO_WARNI..
https://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. www.acmicpc.net 중복 조합 문제 입니다. 이전 게시물인 N과 M(4)에서 중복 조합에 대한 설명과 풀이 방법에 대해 게시했으니 참고해주세요! (동일한 방법으로 풀었습니다!) #define _CRT_SECURE_NO_WARNINGS ..
https://www.acmicpc.net/problem/15656 15656번: N과 M (7) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. www.acmicpc.net 중복순열 문제 입니다. 중복순열에 대한 설명은 이전 게시물 N과 M(3)에서 했기 때문에 설명은 넘어가겠습니다. 풀이 방법도 N과 M(3)과 동일하게 풀면 됩니다. (대신 입력 받은 값들을 한번 정렬을 해줘야 합니다.) #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace s..
https://www.acmicpc.net/problem/15655 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 고른 수열은 오름차순이어야 한다. www.acmicpc.net 조합 문제 입니다. 조합은 이전 게시물 N과 M(2)에서 설명했으므로 설명은 패스! 풀이도 N과 M(2)와 같은 방식으로 풀었습니다. (+ sort로 입력 받은 값들을 정렬만 시켜줬습니다.) #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int n, m; ve..