[Baekjoon/λ°±μ€][1259][C/C++] ν°λ¦°λ둬μ
γλͺ©μ°¨γ
0. κ°μ
1. λ¬Έμ
2. νμ΄
3. μ½λ
0. κ°μ
ꡬν, λ¬Έμμ΄ λ¬Έμ . μμΌλ‘ μμμ΄ λμ¬ ν°λ¦°λ둬 λ¬Έμ μ μλ§μ΄λ€.
1. λ¬Έμ
https://www.acmicpc.net/problem/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
2. νμ΄
νμ΄μ μμ
fgetsν¨μμ μ¬μ©λ°©λ²μ μ΅ν ν νμ΄μΌ ν€λ§€μ§ μκ³ ν μ μλ€. μλ λ§ν¬λ₯Ό μ°Έμ‘°νμ.
ν΅μ¬ κ°λ
μ«μλ₯Ό λ¬Έμλ‘ μ·¨κΈνμ¬, μ«μλ₯Ό λ¬Έμμ΄ λ°°μ΄μμ λ¬Έμ νμμΌλ‘ μ λ ₯λ°μ νλ©΄ μ½κ² ν μ μλ€.
λ¬Έμ νμ΄
/* μ μΈ */
99999 μ΄νμ(μ΅λ 5μ리) μ μκ° μ λ ₯μΌλ‘ λ€μ΄μ€λ―λ‘, λ°°μ΄μ κΈΈμ΄λ μ΅λ 5λ‘ μ‘μΌλ©΄ λλ€. μ΄λ, '\n'κ³Ό '\0'μ΄ λ€μ΄μ€κΈ° μν΄ 2μΉΈμ μ¬μ 곡κ°μ΄ νμνλ―λ‘, μ΅μ’ μ μΌλ‘ λ°°μ΄μ κΈΈμ΄λ₯Ό 7λ‘ μ μΈνλ©΄ λλ€.
/* ν°λ¦°λ둬 μ¬λΆ νλ¨ λ³μ μ μΈ */
true, false μ¬λΆλ§ νλ¨νλ©΄ λλ―λ‘ boolν λ³μλ‘ μ μΈνμλ€.
/* λ¬Έμμ΄ μ
λ ₯λ°μ ν, κ°νλ¬Έμ μ κ±° */
fgetsν¨μλ₯Ό ν΅ν΄ μ
λ ₯λ κ°νλ¬Έμλ₯Ό μ κ±°νλ€.
/* 0κ°μ΄ μ
λ ₯λ κ²½μ°, μ’
λ£ */
0κ°μ΄ μ
λ ₯λ κ²½μ°, λ°λ³΅λ¬Έμ νμΆνλ€.
/* ν°λ¦°λ둬 μ¬λΆ νλ¨ */
'λ°°μ΄μ 첫 λ²μ§Έ μ«μμ λ§μ§λ§ μ«μλ₯Ό λΉκ΅, λ λ²μ§Έ μ«μμ λ§μ§λ§μμ λ λ²μ§Έ μ«μλ₯Ό λΉκ΅, ...' νλ©΄μ λ°°μ΄μ λ§μ§λ§κΉμ§ λΉκ΅λ₯Ό λ°λ³΅ν΄ λκ°λ©΄ λλ€. (μ΄λ, μ°μ° νμλ₯Ό μ€μ΄κΈ° μν΄ λ°°μ΄μ μ€κ°κΉμ§λ§ λΉκ΅λ₯Ό μννμ¬λ μκ΄μμ§λ§, μ½λμ κ°λ¨ν¨μ μν΄ κ·Έλ₯ λ°°μ΄μ λκΉμ§ λΉκ΅λ₯Ό μ§ννμλ€.)
3. μ½λ
#pragma warning(disable:4996)
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int main(int argc, char* argv[]) {
/* μ μΈ */
char palin[7]; // '\0', '\n' ν¬ν¨.
while (true) {
/* ν°λ¦°λ둬 μ¬λΆ νλ¨ λ³μ μ μΈ */
bool ispalin = true;
/* λ¬Έμμ΄ μ
λ ₯ λ°μ ν, κ°νλ¬Έμ μ κ±° */
fgets(palin, sizeof(palin), stdin);
if (palin[strlen(palin) - 1] == '\n')
palin[strlen(palin) - 1] = '\0';
/* 0κ°μ΄ μ
λ ₯λ κ²½μ°, μ’
λ£ */
if (strlen(palin) == 1 && palin[0] == '0')
break;
/* ν°λ¦°λ둬 μ¬λΆ νλ¨ */
for (int i = 0; i < strlen(palin); i++)
if (palin[i] != palin[strlen(palin) - 1 - i])
ispalin = false;
/* μΆλ ₯ */
if (ispalin == false)
printf("no\n");
else if (ispalin == true)
printf("yes\n");
}
return 0;
}