Pink Transparent Star

백준 18

[ 백준 ] 브루트포스 - 체스판 다시 칠하기

문제 지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다. 보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 8×8 크기의 체스판으로 잘라낸 후에 몇 개의 정사각형을 다시 칠해야겠다고 생각했다. 당연히 8..

Coding Test/백준 2023.06.21

[ 백준 ] 브루트포스 - 수학은 비대면 강의입니다.

문제 수현이는 4차 산업혁명 시대에 살고 있는 중학생이다. 코로나 19로 인해, 수현이는 버추얼 학교로 버추얼 출석해 버추얼 강의를 듣고 있다. 수현이의 버추얼 선생님은 문자가 2개인 연립방정식을 해결하는 방법에 대해 강의하고, 다음과 같은 문제를 숙제로 냈다. 다음 연립방정식에서 x와 y의 값을 계산하시오. 4차 산업혁명 시대에 숙제나 하고 앉아있는 것보다 버추얼 친구들을 만나러 가는 게 더 가치있는 일이라고 생각했던 수현이는 이런 연립방정식을 풀 시간이 없었다. 다행히도, 버추얼 강의의 숙제 제출은 인터넷 창의 빈 칸에 수들을 입력하는 식이다. 각 칸에는 −999이상 999이하의 정수만 입력할 수 있다. 수현이가 버추얼 친구들을 만나러 버추얼 세계로 떠날 수 있게 도와주자. 입력 정수 a, b, c,..

Coding Test/백준 2023.06.08

[ 백준 ] 브루트포스 - 분해합

문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. #include using namespace std; int main() { int N, result = 0; cin >> N; for (int i = 1; i <..

Coding Test/백준 2023.06.08

[ 백준 ] 새싹 , Printf & Puts 차이점

해당하는 문제는 출력을 통해 문자열을 출력하면 된다고 생각했다. printf 와 puts을 통해 해당 문자열을 출력할 수 있지만, 해당 게시물은 문자열만 출력하기 때문에 puts를 통해 빠르게 처리하도록 하였다. 그럼 printf와 puts의 차이점은 무엇인가?? printf 함수 puts 함수 문자열 이외에도 정수, 실수 등을 서식화하여 출력 오직 문자열만 출력하여 처리 속도가 빠름 제어문자 \n를 통해 개행 처리 문자열을 출력 후 자동 개행 처리 [ 문제 ] 아래 예제와 같이 새싹을 출력하시오. [ 문제 해결] #include using namespace std; int main(void) { puts(" ,r'\"7"); puts("r`-_ ,' ,/"); puts(" \\. \". L_r'"); ..

Coding Test/백준 2022.09.26

[ 백준 ] 킹, 퀸, 룩, 비숍, 나이트, 폰

[ 문제 ] 동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다. 체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다. 체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다. 동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오. [ 문제 해결 ] #include using namespace std; // 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개 int main(void) { int chess[6] = { 0, }; int chessCh..

Coding Test/백준 2022.09.26

[ 백준 ] 브루트포스 - 블랙잭

브루트포스란? brute [짐승, 짐승같은, 난폭한 ] + force [ 힘, 무력, 폭력 ] 의 합성어로 짐승같은 힘, 난폭한 힘, 완전 탐색 알고리즘이라고 말할 수 있다. 완전 탐색?? 모든 경우의 수를 탐색하는 알고리즘이다. 즉, 모든 경우의 수를 직접 다 대입하는 알고리즘이다. 모든 과정을 다 해보고 검사하기 때문에 100% 정확도를 보여주는 방법이고, 그만큼 구현하기 쉬운 알고리즘 중 하나이다. 하지만 경우의 수에 따라 시간이 증가하기 때문에 시간적인 측면에서 비효율적이다. 대표적인 브루트 포스 예시로 블랙잭을 예로 들 수 있다. [ 문제 ] 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙..

Coding Test/백준 2022.09.20

[백준] 재귀함수 - 피보나치 수 5

피보나치란? 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. [문제] 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. [ 풀이 ] #include using namespace std; //피보나치 수열 int Fibonacci(int num);..

Coding Test/백준 2022.09.13

[백준] 재귀함수 - 팩토리얼

재귀함수(Recursion Function)란? 함수에서 자기 자신을 다시 호출해 작업을 수행하는 방식 반복적으로 특정 분기까지 자기 자신을 계속해서 호출할때 사용한다. 문제 ] 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 ] 첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다. [ 코드 ] #include using namespace std; int Factorial(int num) { if (num > num; cout

Coding Test/백준 2022.09.02