반응형

논리 2

논리훈련문제,

논리문제는 아이디어를 내기까지가 상당히 까다롭다. 결국 많은 경험이 필요하다. 다음 문제를 보자 문제 N*N의 영역이 주어진다.(N : 2~10000) 해당 영역에 먼지가 떨어져 있다. 청소를 단 한번 할 수 있다. 청소 구역의 둘레 길이 L(4~100이며 짝수이다)이 주어진다. 먼지의 개수는 M(1~100)으로 주어지며 먼지의 X,Y좌표값이 주어진다. 주어진 L의 조건에서 청소 시 가장 많이 제거할 수 있는 먼지의 갯수를 구하라 입력 6 10 6 2 2 4 6 5 2 6 4 2 4 3 3 출력 4 접근방법 주어진 케이스는 아래와 같다. 청소영역 둘레가 10이라 청소영역 가로세로 2*3 조합도 가능하고 1*4 조합도 가능하다. 아이디어를 생각해본다. 1) 간단하게 N을 기준으로 모든 영역을 수행한다. N..

SW/Algorithm 2021.08.10

논리문제, 덧칠하기

문제 N*N 크기의 도화지에 1~9의 색을 칠한다. 이때 직사각형 모양으로 색칠한다. 매번 다른색을 칠하며 영역을 완전히 침범하지 않는 선에서 덧칠을 할 수 있다. 이때 덧칠되지 않은 색은 몇개인지 구하라. input (도화지 크기, 색정보) 4 1230 1737 1777 0220 output 2 접근방법 1. 색영역은 무조건 직사각형이다. 색 영역의 min, max 꼭지점 좌표를 구한다. 2. 색영역을 탐색하며 해당 색 영역에 침범된 다른 색을 Checker 배열에 count한다. 3. Checker배열에서 다른 영역을 침범하지 않은 색의 갯수를 구한다. #include int N; char paint[12][12]; void input(){ scanf("%d",&N); for(int i=0; i

SW/Algorithm 2021.07.20
반응형