https://www.acmicpc.net/problem/1598

 

1598번: 꼬리를 무는 숫자 나열

첫째 줄에 원숭이가 생각한 두 개의 자연수가 주어진다. 각 수는 10,000,000 이하이다.

www.acmicpc.net

#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable:4996)
int main() {
	int a, b, a1 = 0, a2 = 0, b1 = 0, b2 = 0;
	scanf("%d %d", &a, &b);
	a -= 1;
	b -= 1;
	a1 = a / 4;
	b1 = b / 4;
	a2 = a % 4;
	b2 = b % 4;
	printf("%d", abs(a1 - b1) + abs(a2 - b2));
	return 0;
}

이 문제는 풀이하는데 상당히 애를 먹었다.

최대한 내 머리로 해결해보려 했으나 쉽지 않다...

식을 찾아보니 입력받은 값에 -1을 하고 각각 4로 나눈 몫과 나머지를 뺀 절댓값을 더하면 된다고는 한다...

코드의 순서는 다음과 같다.

1. 각각 입력받을 함수와 사칙연산을 저장할 변수들을 선언한다.

2. 각각 함수에 입력을 받는다.

3. 각각 함수에 1씩을 빼준다.

4. 각각 4로 나눈 몫과 나머지를 깔끔하게 보기 위해 각 함수에 저장한다.

5. 4의 함수들을 뺀 값의 절댓값을 서로 더해주어 출력한다.

 

일단 얼추 각 행열을 구해서 빼준다는 부분은 알 것 같다.

이 코드의 사용된 공식은 아직도 이해가 쉽지는 않다. 이 문제를 풀면서 내 역량에 대해 다시 돌아보게 되었고, 더욱 노력하여 더 어려운 문제들도 풀 수 있도록 노력해야겠다고 느꼈다.

'TeamLog > 과제' 카테고리의 다른 글

[JS] 리터럴, 식별자, 키워드  (0) 2023.05.21
c언어 함수 개념 정리  (0) 2023.04.17
1402. 아무래도이문제는A번난이도인것같다  (0) 2023.04.09
8958. OX퀴즈  (0) 2023.04.09
2609. 최대공약수와 최소공배수  (0) 2023.04.09
vkeod