2022 서강대학교 청정수컵 풀이
A   [BOJ 25175] 두~~부 두부 두부
B   [BOJ 25176] 청정수열 (Easy)
C   [BOJ 25177] 서강의 역사를 찾아서
D   [BOJ 25178] 두라무리 휴지
E   [BOJ 25179] 배스킨라빈스~N~귀엽고~깜찍하게~
F   [BOJ 25180] 썸 팰린드롬
G   [BOJ 25181] Swap the elements
H   [BOJ 25182] 청정수열 (Hard)
I   [BOJ 25183] 인생은 한 방
J   [BOJ 25184] 동가수열 구하기
K   [BOJ 25185] 카드 뽑기
L   [BOJ 25186] INFP 두람
M   [BOJ 25187] 고인물이 싫어요
N   [BOJ 25188] 1, 3, 모 나누기

1. 문제

$25180$. 썸 팰린드롬 (2022 서강대학교 청정수컵 F번)

백준 25180번 - 썸 팰린드롬 (https://www.acmicpc.net/problem/25180)

2. 풀이

정해진 합을 최소 개수의 숫자를 사용해서 만들어야 하므로, 숫자가 최대한 커야 한다. 따라서 $9$를 최대한 많이 사용한다.

$N=26$ $\rightarrow$ $989$

$N=27$ $\rightarrow$ $999$

$N=28$ $\rightarrow$ $5995$

$N=30$ $\rightarrow$ $6996$

이를 통해, $N$을 $9$로 나누었을 때 몫을 사용해서 길이를 구할 수 있음을 알 수 있다.

int len = (N - 1) / 9 + 1;

단, 예외 케이스가 있다.

$N=29$ $\rightarrow$ $?99?$

$N$이 $29$인 경우, $9$ 두 개를 사용하게 되면, 나머지 합인 $11$로 두 개의 동일한 수를 만들어낼 수 없다. 따라서, 위의 경우에는 $9$를 세 개 사용해야 한다. 그럼 길이가 $1$ 더 증가하게 된다.

$N=29$ $\rightarrow$ $19991$

이를 통해, $N$이 홀수인데 len이 짝수가 나오는 경우, 위와 같은 예외상황이 발생하여 결과값에 $1$을 더해야 함을 알 수 있다. ($N$이 홀수더라도 len이 홀수이면, 가운데 수를 조정하면 되므로 상관이 없다.)

3. 채점 결과

boj-25180

4. 회고

.

5. 코드

댓글남기기