https://www.acmicpc.net/problem/1259
회문(palindrome)에 관한 문제.
파이썬으로 풀었으면 간단하게 풀었을텐데 이걸 C로 풀려니 참 힘들다.
그래서 그냥 둘다 해버리기로 했다!
그래도 C언어는 하나하나 해주는 대신, 섬세한 작업이 가능하다는 것은 알겠다.
C언어 풀이
// C lang solution
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool palindrome_num (char *num, int len) {
int size = (len + 1) / 2;
bool ret = true;
for (int i = 0; i < size; i++) {
if (num[i] != num[len-1-i]) {
ret = !ret;
break;
}
}
return ret;
}
int main () {
char a[6];
while (1) {
scanf("%s", a);
if (!strcmp(a, "0")) break;
printf(palindrome_num(a, strlen(a)) ? "yes\n" : "no\n");
}
return 0;
}
파이썬 풀이
# Python 3 lang solution
while True:
a = input()
if a == "0" : break
if a == a[::-1] : print("yes")
else: print("no")
말로만 파이썬이 느리다 뭐다 해서 이론적으로는 알고 있었지만, 이번에 같은 문제를 돌려보니 확실히 알겠다.
코드도 파이썬이 더 적고, 간결하지만, 잡아먹는 메모리나, 실행시간에서 그 차이가 명확해졌다.
메모리를 20배 가까이 더 잡아먹고, 실행시간은 더할나위없이 차이가 난다.
이래서 C언어를 쓰는가보다.
하지만 여전히 너무 어려운 C언어.....
'coding_test > BAEKJOON' 카테고리의 다른 글
백준 1929번 C언어 풀이 - 두번째 풀이 (0) | 2021.08.24 |
---|---|
백준 1929번 C언어 풀이 (0) | 2021.08.23 |
백준 1085번 C언어 풀이 (0) | 2021.08.22 |
백준 2920번 C언어 풀이 (0) | 2021.08.21 |
백준 2475번 C언어 풀이 (0) | 2021.08.21 |