-
[๋ฐฑ์ค(BOJ)] 1259๋ฒ ํฐ๋ฆฐ๋๋กฌ์, C์ธ์ด ํ์ดPS(Problem Solving)/C 2020. 7. 31. 16:53๋ฐ์ํ
<ํฐ๋ฆฐ๋๋กฌ์>, 1259๋ฒ
๋ฌธ์
์ด๋ค ๋จ์ด๋ฅผ ๋ค์์๋ถํฐ ์ฝ์ด๋ ๋๊ฐ๋ค๋ฉด ๊ทธ ๋จ์ด๋ฅผ ํฐ๋ฆฐ๋๋กฌ์ด๋ผ๊ณ ํ๋ค. 'radar', 'sees'๋ ํฐ๋ฆฐ๋๋กฌ์ด๋ค.
์๋ ํฐ๋ฆฐ๋๋กฌ์ผ๋ก ์ทจ๊ธํ ์ ์๋ค. ์์ ์ซ์๋ค์ ๋ค์์๋ถํฐ ์ฝ์ด๋ ๊ฐ๋ค๋ฉด ๊ทธ ์๋ ํฐ๋ฆฐ๋๋กฌ์๋ค. 121, 12421 ๋ฑ์ ํฐ๋ฆฐ๋๋กฌ์๋ค. 123, 1231์ ๋ค์์๋ถํฐ ์ฝ์ผ๋ฉด ๋ค๋ฅด๋ฏ๋ก ํฐ๋ฆฐ๋๋กฌ์๊ฐ ์๋๋ค. ๋ํ 10๋ ํฐ๋ฆฐ๋๋กฌ์๊ฐ ์๋๋ฐ, ์์ ๋ฌด์๋ฏธํ 0์ด ์ฌ ์ ์๋ค๋ฉด 010์ด ๋์ด ํฐ๋ฆฐ๋๋กฌ์๋ก ์ทจ๊ธํ ์๋ ์์ง๋ง, ํน๋ณํ ์ด๋ฒ ๋ฌธ์ ์์๋ ๋ฌด์๋ฏธํ 0์ด ์์ ์ฌ ์ ์๋ค๊ณ ํ์.
์ ๋ ฅ
์ ๋ ฅ์ ์ฌ๋ฌ ๊ฐ์ ํ ์คํธ ์ผ์ด์ค๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ๊ฐ ์ค๋ง๋ค 1 ์ด์ 99999 ์ดํ์ ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ ๋ ฅ์ ๋ง์ง๋ง ์ค์๋ 0์ด ์ฃผ์ด์ง๋ฉฐ, ์ด ์ค์ ๋ฌธ์ ์ ํฌํจ๋์ง ์๋๋ค.
์ถ๋ ฅ
๊ฐ ์ค๋ง๋ค ์ฃผ์ด์ง ์๊ฐ ํฐ๋ฆฐ๋๋กฌ์๋ฉด 'yes', ์๋๋ฉด 'no'๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1 ๋ณต์ฌ
121
1231
12421
0
์์ ์ถ๋ ฅ 1 ๋ณต์ฌ
yes
no
yes
ํ์ด
์ด ๋ฌธ์ ๋ ์ ์ ์ค์ฑ์ฐ ์ ์์ ์ดํ Cํ๋ก๊ทธ๋๋ฐ ๋์ ๋ฌธ์ ์ ์๋ ํ๋ฌธ ๋ฌธ์ ์ ๊ฑฐ์ ๊ฐ๋ค๊ณ ๋ณด๋ฉด ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค. ๋๋ While๋ฌธ์ ๋ฌดํ์ผ๋ก ๋ฐ๋ณตํ๋๋ก ํ ํ ๋ง์ฝ 0์ ์ ๋ ฅํ๋ค๋ฉด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋๋ก ํ๋ค. ๊ทธ๋ฆฌ๊ณ 0์ ์ ์ธํ๊ณ charํ์ผ๋ก ์๋ฅผ ๋ฌธ์์ด๋ก ์ ๋ ฅ๋ฐ์ ํ intํ์ธ ๋ฐฐ์ด arr๋ก ์ฎ๊ธด ํ์ ๋ฐฐ์ด arr์ ์์๊ณผ ๋์ด ๋ค๋ฅด๋ฉด ๋ฌด์กฐ๊ฑด ํฐ๋ฆฐ๋๋กฌ์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ no๋ฅผ ์ถ๋ ฅํ๋๋ก ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์์๊ณผ ๋์ ๊ฐ์ด ๊ฐ๋ค๊ณ ํ๋๋ผ๋ ‘1231’์ ํฐ๋ฆฐ๋๋กฌ์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋ else๋ฌธ์์ ์๊ฐ์ ๋ ํด์ผ ํ๋ค. ๋๋ ๊ทธ๋์ if๋ฌธ์ ๋ ์ฌ์ฉํด์ ๋ฐฐ์ด arr์ ์์ + 1๊ณผ ๋ฐฐ์ด arr์ ๋ – 1์ด ๋์๊ฐ์๋ก ๊ฐ๋ค๋ฉด ํฐ๋ฆฐ๋๋กฌ์๋ผ๋ ์ ์ ํตํด์ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค.
#include <stdio.h> int main(void) { char num[100000]; int arr[100000]; int len = 0; int n; while (1) { scanf("%s", num); while (num[len] != '\0') len++; for (int i = 0; i < len; i++) arr[i] = num[i]; if (num[0] == '0') break; if (len == 1) { printf("yes\n"); len = 0; } for (int i = 0; i < len / 2; i++) { if (arr[i] != arr[len - i - 1]) { printf("no\n"); len = 0; break; } else { if (arr[i + 1] == arr[len - i - 2]) { printf("yes\n"); len = 0; break; } else { printf("no\n"); len = 0; break; } } } } return 0; }
๋ฐ์ํ