본문 바로가기

[알고스팟/ALGOSPOT] 7. NQUEEN 알고리즘 알고파! 알고라파덕 안녕하세요~ 알고라파덕입니다! 이번 문제는 NQUEEN이라는 문제입니다. 재귀함수를 이용하여 백트래킹을 구현하였습니다. 문제 개요 NxN 크기의 체스판에 N개의 킨을 서로 공격할 수 없도록 올려놓는 퍼즐입니다. 테스트케이스가 주어지고, 테스트 케이스마다 체스판의 크기 N이 입력됩니다. 여기서 N개의 퀸을 배치하는 가지수를 출력해야 합니다. 문제 풀이 N개의 퀸을 배치해야 함으로, 한 줄에는 한 개의 퀸만이 들어가야 됩니다. 이를 이용하여 첫 행에 1~N열에 퀸을 배치하고 배치하였을 때 퀸의 이동경로를 체크합니다. 체크는 chk[][]라는 배열을 만들어 퀸의 이동경로에 포함되면 1을 아니면 0으로 입력합니다. 2번째 행부터 재귀함수를 이용하여 1열~N열 까지의 칸중에서 체크되지.. 더보기
[알고스팟/ALGOSPOT] 6. BOARDCOVER 알고리즘 알고파! 알고라파덕 안녕하세요~ 알고라파덕입니다! 6번 문제는 BOARDCOVER라는 문제입니다! 저는 이 문제를 재귀함수로 DFS(깊이 우선 탐색법)를 구현하여 풀었습니다. 문제 개요 입력에서 테스트 케이스가 주어지면 하나의 테스트 케이스당 (NxM)행렬의 게임판이 주어집니다. 이 게임판에서 '#'은 블록이 있는 부분이고, '.'은 블록이 없는 부분입니다. 그럼 저희는 블록이 없는 부분 '.'을 '#'으로 채워주어야 합니다! 블록의 개수는 ㄱ, ㄴ과 ㄱ, ㄴ의 90도 회전한 블록 4개가 있습니다. 문제 풀이 재귀함수를 이용하여 DFS를 구현하였습니다. 먼저 입력을 받을 때 블록이 없는 부분 '.'부분을 추출해 놓으면 속도를 더 빠르게 할 수 있습니다. 탐색도 쉽게 할 수 있구요! 예를 들어 입.. 더보기
[알고스팟/ALGOSPOT] 5. CSBASEBALL 알고리즘 알고파! 알고라파덕 안녕하세요~ 알고라파덕입니다! 5번 문제는 CSBASEBALL이라는 문제입니다! 문제 개요 입력에 테스트 케이스가 주어지고, 하나의 테스트 케이스마다 2개의 입력이 들어온다. 첫 입력 A는 CS야구팀의 점수, B는 화나 핀토스팀의 점수가 된다.(이름 참..ㅋㅋ) 그러면 여기서 A팀이 B팀을 이길 수 있게 하는 안타 수를 구하는 것이 문제다. 문제 풀이 동점 상황에서는 1점을 더 얻으면 되므로 4개의 안타가 필요하겠고 지고 있는 상황에서는 4개의 안타에 두 A, B의 차이의 합이 필요하겠다. (4개의 안타 이후에는 안타 하나당 1점을 얻을 수 있다.) 이기고 있는 상황에서는 안타가 필요없다. 간단한 구현문제였습니다! 문제 출처 : https://algospot.com/judge.. 더보기