철학하는 개발자

있는 것은 있고, 없는 것은 없다.

브루트포스 알고리즘 22

[백준 1065] 한수 [C]

풀이 원래는 Brute Force로 해결하는 문제지만, 수의 범위가 작기 때문에 다음과 같이 풀이했. 1 ~ 99는 비교할 다음 자리의 수가 없기 때문에 한수이다. 백의자리 - 십의자리 = 십의자리 - 일의자리가 같으면 한수이다. 소스코드 #include int ap(int n){ int cnt = 0; for (int i = 1; i 0 && i < 100) cnt ++; else if (i/100 - (i%100)/10 == (i%100)/10 - ((i%100)%10)) cnt++; return cnt; } int main(){ int N; scanf("%d", &N); printf("%d", ap(N)); } 출처 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한..

[백준 1018] 체스판 다시 칠하기 [C]

풀이 N * M 크기의 보드를 2차원 배열로 입력받고, (0, 0), (0, 1), (0, 2), ... 각 요소들을 기준으로 8 * 8크기의 보드를 수정해 체스판을 만들 때, 몇 개의 칸이 수정되어야 생성되는지 최소값을 기록하는 방식으로 해결할 수 있다. 맨 처음 시작좌표인 (0, 0)을 기준으로 다음과 같은 체스판을 생성하기 시작한다고 가정한다. (빨간 사각형) 기준이 되는 시작 좌표는 (row, col)이며, 이 값을 가상의 보드를 생성하는 함수로 복사한다. 시작 좌표를 기준으로 (row ~ +7, col ~ +7)의 범위 (빨간 사각형) 안에서, 체스판을 생성할 때 최소 몇개의 칸이 수정되는지 확인 검정칸 이어야 하는 곳((i + j) % 2 == 0)이 검정칸이면, white++, 아니면 bla..