solved.ac class 163

[백준 1259] 팰린드롬수 [C]

풀이 문자열의 길이를 알아내 문자열의 양끝을 비교하는 방식으로 문제를 해결할 수 있다. 무의미한 0이 주어지지 않으므로, num[0]의 값이 0이면 반복문을 빠져나온다. 소스코드 #include #include int main(){ char num[6]; while (scanf("%s", num) && num[0] != '0') { int len = strlen(num), palin = 1; for (int i = 0; i < len/2; i++) if (num[i] != num[len - 1 - i]){ palin = 0; break; } puts(palin ? "yes" : "no"); } } 출처 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 9999..

[백준 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..

[백준 11720] 숫자의 합 [C]

풀이 문자열을 입력받고, 문자 '0'~'9'에 48을 뺀 아스키 코드 값이 숫자 0 ~ 9와 같다는 점을 이용해 해결하면 된다. 소스코드 #include int main(){ int N, sum = 0; char str[101]; scanf("%d %s", &N, str); for (int i = 0; i < N; i++) sum += str[i] - 48; printf("%d", sum); } 출처 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net