학부때 이상한 해킹 사이트에서 한 학기 내내 활동하던 친구가 있었습니다.

초반 단계는 금세 풀어내던 녀석이었는데 13단계를 넘어가니 한달에 한 문제를 풀며 씨름하더군요.

하지만, 그러한 삽질 끝에 녀석의 실력은 꽤나 가다듬어졌습니다.


그 녀석을 떠올리며 저도 부끄러운 실력을 좀 가다듬어볼까 합니다.

알고리즘 책을 다시 읽자니 졸음이 쏟아져서 진도가 안나가니,

algospot을 벗 삼아 학부 수준에 멈춰있는 혹은 그보다도 퇴보한 뇌를 일깨워야겠습니다.


알고스팟은 2007년부터 운영하기 시작한 온라인채점 사이트입니다.

문제를 푼 후에는 해당 문제에 대한 다른 사람의 답안도 볼 수 있어 유용합니다.



가장 간단한 HELLOWORLD 문제를 풀어보았습니다.

https://algospot.com/judge/problem/read/HELLOWORLD

사용자의 입력을 받아 문자열을 더해 출력하는 간단한 문제입니다.


#include <stdio.h>
#define NAME_LEN 1024

int main(int argc, char **argv)
{
    int count = 0;
    char name[NAME_LEN] = {0, };

    /* scanf doesn't include '\n' */
    scanf("%d", &count);
    while (count) {
        scanf("%s", name);
        printf("Hello, %s!\n", name);
        count--;
    }
    return 0;
}


코딩 자체는 평이하지만 몇가지 고려해야할 점이 있습니다.

- name의 사이즈를 1024로 제한하였습니다.

   문제의 조건에 따라 1024를 넘어설 수 있겠죠.

- scanf("%s", name)에서는 사용자가 입력을 위해 입력한 '\n'를 포함하지 않습니다.

- scanf("%s", name)에서 name은 char *입니다. char **로 사용하지 않도록 합니다.


위처럼 코딩하고 제출하니 4849등이 되었습니다 :)

아주 만족할만한 등수입니다.



오늘은 간만에 너무 많이 머리를 썼으니 이만 취침하도록 하겠습니다.

그럼 즐거운 하루 보내세요~


끝_

+ Recent posts