본문 바로가기

Algorithm/Brute Force

(142)
(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] ..
(C++) - 백준(BOJ) 24039 : 2021은 무엇이 특별할까? https://www.acmicpc.net/problem/24039 24039번: 2021은 무엇이 특별할까? 백준 온라인 저지의 송년대회 Good Bye BOJ, 2021!의 개최일은 2021년 12월 31일이다. 원이는 대회가 개최된다는 사실이 기뻐 제목을 뚫어져라 보다가 2021이 무언가 특별하다는 사실을 깨달았다. 그렇 www.acmicpc.net 모든 경우의 수를 탐색하는 brute force문제였습니다. 📕 풀이방법 📔 입력 및 초기화 1. 소수들을 저장할 vector prime, 소수인지 판별할 일차원 배열 ck, n, 정답을 출력할 ans를 선언 후 입력받습니다. 2. 에라토스테네스의 체 원리를 수행해서 소수인지 판별한 뒤 소수들을 prime에 저장해줍니다. 📔 풀이과정 1. prime의 ..
(C++) - 백준(BOJ) 11068 : 회문인 수 https://www.acmicpc.net/problem/11068 11068번: 회문인 수 어떤 수를 왼쪽부터 읽어도, 오른쪽부터 읽어도 같을 때 이 수를 회문인 수라고 한다. 예를 들어, 747은 회문인 수이다. 255도 회문인 수인데, 16진수로 표현하면 FF이기 때문이다. 양의 정수를 입력 www.acmicpc.net 모든 경우의 수를 확인하는 brute force문제였습니다. 📕 풀이방법 📔 입력 및 초기화 test case t, 10진수 num을 선언 후 매 t마다 num에 입력받습니다. 📔 풀이과정 정답을 출력할 지역변수 isValid를 선언 후 0으로 초기화합니다. b진법의 범위가 2 ~ 64이므로 for loop를 해당 범위만큼 수행합니다. 1. b진법으로 표현된 vector를 반환하는 ..
(C++) - 백준(BOJ) 1025 : 제곱수 찾기 https://www.acmicpc.net/problem/1025 1025번: 제곱수 찾기 첫째 줄에 N, M이 주어진다. 둘째 줄부터 N개의 줄에는 표에 적힌 숫자가 1번 행부터 N번 행까지 순서대로 한 줄에 한 행씩 주어진다. 한 행에 적힌 숫자는 1번 열부터 M번 열까지 순서대로 주어지 www.acmicpc.net brute force 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n행 m열, 정답 변수 ans, 수가 적힌 표를 의미하는 이차원 배열 chart를 선언한 뒤 정보를 입력받습니다.ans는 -1로 초기화해줍니다. 답이 없는 경우 -1을 출력하기 위함입니다. 📔 풀이과정 뽑은 수의 행과 열좌표들을 나열했을 때 각각 행끼리는 등차수열, 각각의 열끼리도 등차수열인 수가 완전 제곱수인 모든 경우..