본문 바로가기

Algorithm/Brute Force

(153)
(C++) - 백준(BOJ) 19947 : 투자의 귀재 배주형 https://www.acmicpc.net/problem/19947 19947번: 투자의 귀재 배주형 2020년에 학교로 복학한 주형이는 월세를 마련하기 위해서 군 적금을 깨고 복리 투자를 하려고 한다. 주형이가 하려는 투자에는 3가지 방법의 투자 방식이 있다. 1년마다 5%의 이율을 얻는 투자 ( www.acmicpc.net 재귀를 이용한 brute force문제였습니다. 📕 풀이방법 📔 입력 및 초기화 투자 기간 y, 초기돈 h를 선언한 후 입력받습니다. 📔 풀이과정 각 3가지의 경우에 대해 이자를 받은 후의 연도와 보유자산을 다름 함수의 인자로 넘겨 재귀형태로 호출합니다. 📔 정답출력 bruteForce()의 반환값을 출력합니다. 📕 Code backtracking처럼 구현한 방식 #include ..
(C++) - 백준(BOJ) 2246 : 콘도 선정 https://www.acmicpc.net/problem/2246 2246번: 콘도 선정 첫째 줄에 콘도의 개수를 나타내는 자연수 N(1 ≤ N ≤ 10,000)이 주어진다. 다음 N개의 줄에는 각 콘도에 대한 정보를 나타내는 두 정수 D(1 ≤ D ≤ 10,000), C(1 ≤ C ≤ 10,000)가 주어진다. D는 그 콘도의 www.acmicpc.net 모든 경우의 수를 탐색하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 콘도의 개수 n, 정답 ans, 후보 가능 여부 can, xd, xc, d, c를 선언합니다. 📔 풀이과정 모든 경우의 수를 탐색하며 다음 조건인 경우에 후보지가 될수 없으므로 can을 0으로 만들고 loop를 탈출합니다. 1. 후보지보다 가까운데 가격도 싼 경우 2. 후보지보다..
(C++) - 백준(BOJ) 5671 : 호텔 방 번호 https://www.acmicpc.net/problem/5671 5671번: 호텔 방 번호 선영이는 집 호수에 반복되는 숫자가 있는 경우에는 그 집에 사는 사람에게 불운이 찾아온다고 믿는다. 따라서, 선영이는 838호나 1004호와 같이 한 숫자가 두 번 이상 들어있는 집에는 절대 살지 www.acmicpc.net 모든 경우의 수를 탐색하는 brute_force문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n, m, ans를 선언한 후 EOF가 나올 때까지 n, m에 입력받습니다. 📔 풀이과정 1. n이상 m이하의 범위로 for loop를 수행하며 유효한 방 번호인지 확인해줍니다. 2. 유효여부는 isValid함수를 수행해 각 자리 수 vector cnt를 지역변수로 선언하여 모든 수가 2개 미만으로 ..
(C++) - 백준(BOJ) 16173 : 점프왕 쩰리 (Small) https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 재귀를 활용한 brute force문제였습니다. 📕 풀이방법 📔 입력 및 초기화 구역크기 n, 구역정보 이차원 배열 board를 선언 후 입력받습니다. 📔 풀이과정 canWin함수를 수행합니다. 오른쪽 또는 아래쪽으로 갈 수 있다면 해당 칸으로 점프합니다. 도착할 수 있다면 1을 도착할 수 없다면 0을 반환합니다. 📔 정답출력 함수 결과값을 출력합니다. 📕 Code #include using name..
(C++) - 백준(BOJ) 1543 : 문서 검색 https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 모든 경우의 수를 탐색하는 brute force문제였습니다. 📕 풀이방법 📔 입력 및 초기화 문서 docs, 검색 단어 searchWord, 정답 ans, 일치하는 문자 수를 저장할 변수 cnt, 단어의 길이 wordSize, 문서의 길이 docsSize를 저장합니다. 이후 docs와 searchWord에 문자열을 한 줄씩 입력받습니다. 📔 풀이과정 문서 전체에 대해 for loop를 수행합니다. 현재..
(C++) - 백준(BOJ) 14912 : 숫자 빈도수 https://www.acmicpc.net/problem/14912 14912번: 숫자 빈도수 자연수 n (1 ≤ n ≤ 100,000)과 한 자리 숫자 d(0~9)가 첫째 줄에 주어진다. www.acmicpc.net brute force문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n, f, 빈도수를 저장할 일차원 배열 freq를 선언 후 적절히 입력받습니다. 📔 풀이과정 1 ~ n까지 for loop를 수행합니다. 현재 int형 정수를 string으로 변환 후 빈도수를 확인해 freq에 반영합니다. 📔 정답출력 freq의 f번째를 출력합니다. 📕 Code #include using namespace std; int n, f, freq[10]; string curNum; int main(){ cin >..
(C++) - 백준(BOJ) 15489 : 파스칼 삼각형 https://www.acmicpc.net/problem/15489 15489번: 파스칼 삼각형 첫째 줄에 양의 정수 R, C, W가 공백을 한 칸씩 두고 차례로 주어진다. (단, 2 ≤ R+W ≤ 30, 2 ≤ C+W ≤ 30, 1 ≤ W ≤ 29, C ≤ R) www.acmicpc.net 범위를 입력받고 그 범위만큼 탐색해 답을 구하는 brute force로 해결한 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 r, c, w, 파스칼의 삼각형을 저장할 2차원 배열 pas, 정답을 출력할 변수 ans를 선언 후 적절히 입력받습니다. 📔 풀이과정 30까지의 파스칼 삼각형 수를 구해 pas에 저장해줍니다. 📔 정답출력 입력받은 범위만큼 for loop를 수행해 ans에 더해줍니다. 📕 Code #inclu..
(C++) - 백준(BOJ) 8892 : 팰린드롬 https://www.acmicpc.net/problem/8892 8892번: 팰린드롬 팰린드롬은 어느 방향으로 읽어도 항상 같은 방법으로 읽을 수 있는 단어이다. 예를 들어, civic, radar, rotor, madam은 팰린드롬이다. 상근이는 단어 k개 적혀있는 공책을 발견했다. 공책의 단어는 ICPC www.acmicpc.net 모든 경우의 수를 탐색하는 brute force문제였습니다. 📕 풀이방법 📔 입력 및 초기화 test case t, 단어의 개수 k, 단어들을 저장할 vector words를 선언한 후 적절히 입력받습니다. 📔 풀이과정 words의 모든 두 단어를 확인해 합쳐본 뒤 팰린드롬인지 확인해줍니다. 1. 두 단어는 각각 words[i] + words[j] 또는 words[j] ..