💡 Problem Solving
[백준 - 15658] 연산자 끼워넣기 (2) [C++]
1. 문제 https://www.acmicpc.net/problem/15658 15658번: 연산자 끼워넣기 (2) 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1보다 크거나 같고, 4N보다 작거나 같은 4개의 정수가 주어지는데, 차례대 www.acmicpc.net 2. 풀이과정 모든 수의 사이에 연산자를 끼워 넣을 수 있는 모든 경우에 대해서 식의 결과의 최대, 최소를 구한다. [코드설명] dfs함수는 모든 수의 사이에 연산자를 끼워 넣을 수 있는 모든 경우에 대해 탐색한다. 주의해야 할 점은 최대값, 최소값을 저장하는 변수의 초기값을 잘 설정해줘야 하는 것이다. 연산자를 어떻게 끼워넣어..
[백준 - 15666] N과 M (12) [C++]
1. 문제 https://www.acmicpc.net/problem/15666 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 풀이과정 N과 M (11)문제에서 아래의 조건만 추가된 문제이다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다 N과 M (11) 설명 : https://poisson-it.tistory.com/28 [코드설명] N과 M (11)코드에 한줄만 추가해주면 된다. dfs함수내에서 if(v...
[백준 - 15665] N과 M (11)
1. 문제 https://www.acmicpc.net/problem/15665 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 풀이과정 1. N개의 자연수 중에서 M개를 고른 수열 2. 같은 수를 여러 번 골라도 된다. 3. 중복되는 수열을 여러 번 출력하면 안 된다. 4. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 위의 네 가지 조건을 만족해야한다. 3번 조건을 만족하기 위해 같은 레벨에서 같은 수를 중복 방문하지 않아야한다. 4번 조건을 만족하기 위해 N개의 수를 오름차순 정렬해줘야한다. ..
[백준 - 15664] N과 M (10) [C++]
1. 문제 https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 풀이과정 N과 M (9)문제에서 아래의 조건만 추가된 문제이다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다 N과 M (9) 설명 : poisson-it.tistory.com/23 [코드설명] N과 M (9)코드에 한줄만 추가해주면 된다. dfs함수내에서 if(v.size() && v..
[백준 - 2210] 숫자판 점프 [C++]
1. 문제 https://www.acmicpc.net/problem/2210 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net 2. 풀이과정 6자리 수를 만들 수 있는 모든 경우의 수에 대해 중복을 제거하여 개수를 센다. [코드설명] dfs함수는 특정 정점을 시작으로 가능한 6자리 수를 모두 만들어준다. safe함수는 해당 정점이 숫자판 범위 안에 있는지 여부를 판별해준다. 모든 정점을 시작정점으로 6자리 수를 모두 만들어 보며 set 자료구조에 중복되지 않게 수들을 ..
[백준 - 2503] 숫자 야구 [C++]
1. 문제 https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 2. 풀이과정 1. 서로 다른 숫자 세 개로 구성된 세 자리 수를 생성한다. 2. 해당 숫자가 문제에서 주어진 모든 질문&답에 부합하는지 검사한다. 1~2를 가능한 세 자리 수들에 대해 전부 반복한다. [코드설명] dfs함수는 서로 다른 숫자 세 개로 구성된 세 자리 수를 생성해준다. 1 2 3 1 2 4 1 2 5 . . 9 8 7 순으로 생성한다. check함수는 숫자가 문제에서 주..