Appearance
프로 준비법
Professional 시험 주요 특징
- 4시간동안 1문제를 푼다.
- 언어는
c, cpp, java로 가능하다. - 라이브러리를 사용할 수 없으며, 직접 자료구조를 구현해야한다. (
malloc.h만 가능) - 전체적인 로직은 구현이 되어있는 상태이며, 사용자가 구현해야 할 메소드 부분이 빈칸으로 제공된다. (
main.cpp와user.cpp가 주어지며, 우리는user.cpp를 구현하면 된다) - 시험 유형 2가지
- 내부 테스트케이스를 제한 메모리, 시간 내에 해결해야한다. (50개 3초, 메모리 256MB 이내)
- 주어진 쿼리 함수를 최소한으로 호출하여 문제를 해결해야 한다.
- 주로 샘플 테스트케이스는 5개가 주어지며, 이를 활용해 디버깅을 해볼 수 있다.
- 시험장에서는 Reference Code가 주어지며 사용할 수 있다. (자료구조, 알고리즘)
핵심 자료구조
- Queue, Stack
- Sort
- Linked List
- Hash
- Heap
- Binary Search
학습 시작
1) Visual Studio 설정하기
Visual C++ 빈 프로젝트 생성
user.cpp와main.cpp생성프로젝트명 오른쪽 마우스 클릭 → 속성
C/C++에서 SDL 검사 아니요로 변경디버깅할 때 scanf나 printf를 사용하기 위함
링커/시스템에서 맨위하위 시스템이 공란이면콘솔(/SUBSYSTEM:CONSOLE)로 설정공란이면 run할 때 콘솔창이 켜있는 상태로 유지가 되지 않음 (반드시 설정)
2) cpp로 프로 문제 풀 때 알아야 할 것
printf로 출력 확인해보기 위한 라이브러리 :
#include <stdio.h>. 제출시에는 꼭 지우기구조체 :
struct포인터 : 주소값 활용
문자열
문자열의 맨 마지막에는 항상
'\0'로 끝나야한다.문자열 복사 (a에 b를 복사)
cppchar 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'가 저장됌 }문자열 비교
cppchar 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 }문자열 초기화
특수히 중간에 초기화가 필요할 때만 사용
cppvoid strnull(char *a) { *a = 0; }