본문 바로가기

반응형

완전 탐색

(4)
[삼성 기출 문제] 백준15686 치킨 배달 문제 링크 어떻게 풀까? 해당 문제는 전형적인 조합 문제입니다.생각해봐야할 과제는 다음과 같습니다. 1. 맵에서 치킨집의 개수를 추출한 후에 비트 조합을 이용해서 m개의 치킨집만을 고른다.2. 사람들이 사는 모든 집에서 현재 선택된 m개의 치킨 집 중에서 최소의 치킨집을 구한 후 더한다. (도시의 치킨 거리를 구한다.)3. 최소의 도시의 치킨 거리 값을 출력한다. 만약, 비트 조합을 만드실줄 모른다면 여기를 참조하세요! 1234567891011121314151617181920212223242526272829typedef struct Cod{ int r,c; } cod; int cNum, pNum;cod company[13];cod people[100]; int getAllDist(){ int visit ..
[삼성 기출 문제] 백준15684 사다리 조작 문제 링크 어떻게 풀까? 이 문제는 사다리위에 다리가 있다는 것을 어떻게 표시할지를 생각해야합니다.그리고, 최대 3개의 놓을 수 있는 사다리를 어디에 놓을지, 사다리를 놓은 다음에 해당 사다리 정보가 문제의 조건에 맞는지를 생각해보아야 합니다.그리고 사다리의 가로줄을 만나면 어떻게 처리할지도 생각해야 하죠!문제의 조건에 맞는 사다리란, 사다리가 1,2,3,4,5, ... N으로 출발해서, 도착 했을때에도 1,2,3,4,5, ... N 이어야 하죠! 그럼 우선, 사다리에 대한 정보를 어떻게 표시할지에 대해서 생각해봅시다. 사다리입니다! 가로줄과 세로줄이있죠.그림을 보면, 세로줄과 가로줄을 행과 열에 따라서 2차원 배열로 나타내면 아주 좋을 것이라는 것을 깨달을 수 있습니다!높이 x의 y번쨰 설치된 가로줄을..
[삼성 기출 문제] 백준 15683 감시 문제 링크 어떻게 풀까? 이 문제는 여러 개의 카메라를 돌려서 카메라의 영역에 들어오지 않는 부분(사각 지대)을 찾는 문제입니다.시뮬레이션이면서 완전 탐색의 성격을 모두 갖추고있죠! 카메라를 돌리는 것에서 다양한 방법이 있을 수 있습니다.문제를 풀기전에 1. 카메라를 어떻게 돌릴지, 2. 카메라가 비추는 영역을 어떻게 표시할지 에 대해서 생각해 봅시다. 첫 번째로, 카메라를 어떻게 돌릴까? 입니다. 보시면, 카메라는 총 5가지 종류가 있습니다.1번 카메라는 90도씩 돌린다고 하면 총 4개의 다른 부분을 보는 영역을 만들 수 있겠죠! 이렇게 4개의 방향을 만들 수 있죠!이와 비슷하게 2번은 2개, 3번은 4개, 4번도 4개, 5번은 1개의 서로 다른 방향을 만들 수 있습니다. (csize)또한, 화살표의 ..
[삼성 기출 문제] 백준 12100 2048 (easy) 문제 링크 클릭시 문제로 이동합니다. 어떻게 풀까? 해당 문제는 크게 2 부분으로 나눌 수 있습니다. 1. 재귀를 이용하여 블록을 위/아래/왼쪽/오른쪽 으로 최대 5번 이동시키는 부분2. 이동시켜서 최댓값이 어떻게 되는지 알아내는 부분 이 중, 1번은 2차원 배열 restore[][]를 이용하면, 기존의 맵을 저장하고 복구하면서 맵을 5번까지 이동시키는 방법으로 구현할 수 있습니다. 가장 중요한건 2번이죠! switch를 쓰면 비슷한 방법을 4번 반복해야하기 때문에, 짧게 이를 해결하는 방법을 소개해드리겠습니다.(물론, 실전에서 이 방법까지 생각하려면 힘들겠지만, 그래도! 여긴 블로그니까요!) 우선, 기본적으로 블록을 이동시키는 방법은 덱을 이용하는 것입니다.덱의 맨 뒤의 수와, 현재 맵에 적혀있는 블록..

반응형