Skip to content

프로 준비법


Professional 시험 주요 특징

  • 4시간동안 1문제를 푼다.
  • 언어는 c, cpp, java로 가능하다.
  • 라이브러리를 사용할 수 없으며, 직접 자료구조를 구현해야한다. (malloc.h만 가능)
  • 전체적인 로직은 구현이 되어있는 상태이며, 사용자가 구현해야 할 메소드 부분이 빈칸으로 제공된다. (main.cppuser.cpp가 주어지며, 우리는 user.cpp를 구현하면 된다)
  • 시험 유형 2가지
      1. 내부 테스트케이스를 제한 메모리, 시간 내에 해결해야한다. (50개 3초, 메모리 256MB 이내)
      1. 주어진 쿼리 함수를 최소한으로 호출하여 문제를 해결해야 한다.
  • 주로 샘플 테스트케이스는 5개가 주어지며, 이를 활용해 디버깅을 해볼 수 있다.
  • 시험장에서는 Reference Code가 주어지며 사용할 수 있다. (자료구조, 알고리즘)

핵심 자료구조

  • Queue, Stack
  • Sort
  • Linked List
  • Hash
  • Heap
  • Binary Search

학습 시작


1) Visual Studio 설정하기

  1. Visual C++ 빈 프로젝트 생성

  2. user.cppmain.cpp 생성

  3. 프로젝트명 오른쪽 마우스 클릭 → 속성

  4. C/C++에서 SDL 검사 아니요로 변경

    디버깅할 때 scanf나 printf를 사용하기 위함

  5. 링커/시스템에서 맨위 하위 시스템이 공란이면 콘솔(/SUBSYSTEM:CONSOLE)로 설정

    공란이면 run할 때 콘솔창이 켜있는 상태로 유지가 되지 않음 (반드시 설정)


2) cpp로 프로 문제 풀 때 알아야 할 것

  • printf로 출력 확인해보기 위한 라이브러리 : #include <stdio.h>. 제출시에는 꼭 지우기

  • 구조체 : struct

  • 포인터 : 주소값 활용

  • 문자열

    문자열의 맨 마지막에는 항상 '\0'로 끝나야한다.

    • 문자열 복사 (a에 b를 복사)

      cpp
      char a[5];
      char b[5] = {'a', 'b', 'c', 'd', '\0'};
      
      void strcopy(char *a, char *b) {
          while(*a++ = *b++);
      }
      
      int main(void) {
          strcopy(a, b); // a 배열에 b의 'abcd'가 저장됌
      }
    • 문자열 비교

      cpp
      char a[5] = {'b', 'b', 'c', 'd', '\0'};
      char b[5] = {'a', 'b', 'c', 'd', '\0'};
      
      int strcompare(char *a, char *b) {
          int i;
          for(i = 0; a[i] && a[i] == b[i]; ++i);
          
          return a[i] - b[i];
      }
      
      int main(void) {
          int res = strcompare(a, b); // a가 b보다 작으면 음수, 크면 양수, 같으면 0
      }
    • 문자열 초기화

      특수히 중간에 초기화가 필요할 때만 사용

      cpp
      void strnull(char *a) {
          *a = 0;
      }