본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 5533번 : 유니크 https://www.acmicpc.net/problem/5533 5533번: 유니크 문제 상근이와 친구들은 MT에 가서 아래 설명과 같이 재미있는 게임을 할 것이다. 각 플레이어는 1이상 100 이하의 정수를 카드에 적어 제출한다. 각 플레이어는 자신과 같은 수를 쓴 사람이 없다면, 자신이 쓴 수와 같은 점수를 얻는다. 만약, 같은 수를 쓴 다른 사람이 있는 경우에는 점수를 얻을 수 없다. 상근이와 친구들은 이 게임을 3번 했다. 각 플레이어가 각각 쓴 수가 주어졌을 때, 3번 게임에서 얻은 총 점수를 구하는 프로그램을 작성하시오. 입력 www.acmicpc.net 간단한 구현 문제였습니다. 12345678910111213141516171819202122232425262728293031323334353..
(C++) - 백준(BOJ) 15666번 : N과 M (12) https://www.acmicpc.net/problem/15666 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 풀이방법1 : set을 사용한 경우 1.자기 자신도 탐색한다.(check할 필요가 없음) 2.오름차순으로 출력한다.(탐색의 시작을 node라는 변수부터 실행한다.) 3.중복해서 출력이 되면 안된다.(set을 사용한다.) 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 31 32 33 34 ..
(C++) - 백준(BOJ) 15665번 : N과 M (11) https://www.acmicpc.net/problem/15665 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include #include #include #include using namespace std;int n, m;int a[8];int ck[8];int tmp[8];set ans;//중복 저장을 하지 않는 set이용void..
(C++) - 백준(BOJ) 15664번 : N과 M (10) 문제링크 : https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 출력은 무조건 오름차순, 중복 출력하지 않아야 합니다. 풀이방법 1. set으로 중복된 상태를 저장하지 않게 하는 방법 2. 해당 level의 수를 한 번 뽑았다면 뽑지 못하도록 만드는 2차원 배열을 사용하는 방법 Code 1. set으로 푼 코드 #include #include #include #include using namespace std; int n, m; int..
(C++) - 백준(BOJ) 15663번 : N과 M (9) https://www.acmicpc.net/problem/15663 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net backtracking 문제였습니다. 풀이방법 1. set을 사용하는 방법 2. 사용하지 않고 level별로 체크하는 배열을 하나 더 두어 중복을 방지하는 방법 Code 1. set사용 #include #include #include #include using namespace std; int n, m; int a[8]; int ck[8]; int tmp[8]; set ans; //중복..
(C++) - 백준(BOJ) 15657번 : N과 M (8) 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 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 31 32 33 34 35 36 37 38 #include #inclu..
(C++) - 백준(BOJ) 15656번 : N과 M (7) https://www.acmicpc.net/problem/15656 15656번: N과 M (7) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. www.acmicpc.net 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 31 32 33 34 35 36 37 38 #include #include using namespace std; int n, m; int a[8]; int ans[8]; int ck[8]; void DFS(int..
(C++) - 백준(BOJ) 15655번 : N과 M (6) n개 중 m개 뽑는데 자기 자신은 뽑지 않으면서 오름차순으로 뽑고 싶은 경우 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 31 32 33 34 35 36 37 38 39 #include #include using namespace std; int n, m; int a[8]; int ans[8]; int ck[8]; void DFS(int level,int node) { if (level == m) { for (int i = 0; i