탐색 : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 대표적인 탐색 알고리즘 : DFS, BFS 자료구조 : 데이터를 표현하고 관리하고 처리하기 위한 구조 스택 선입선출 FILO(first in last out)구조, 후입선출 LIFO 구조 스택에서의 입출력은 맨위에서만 일어나고, 스택의 중간에서는 데이터를 삭제할 수 없다. 파이썬 stack=[] ##리스트를 이용한다. stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop() stack.append(1) stack.append(4) stack.pop() print(stack) #최하단 원소부터 출력 print(stack[::-1]) #최상단 원소부터 출력 #출력결과 #..
C
문제 나이트는 다음과 같은 2가지 경우로만 이동할 수 있다. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기 이때 8*8좌표 평면상에서 나이트의 위치가 주어졌을 때 나이트가 이동할 수 있는 경우의 수를 출력하는 프로그램을 작성하시오. (행위치를 표현할 때는 1부터 8, 열 위치를 표현할 때는 a부터 h로 표현한다.) 내답안 #include #define X 8 #define Y 8 int main(){ int steps[8][2]={{-2,-1},{-1,-2},{1,-2},{2,-1},{2,1},{1,2},{-1,2},{-2,1}}; char x; int y, xRow, yCol, para=0, result=0; scanf("%c%d", &x, ..
문제 게임 캐릭터가 맵 안에서 움직이는 시스템을 개발 중. 캐릭터가 있는 장소는 1 × 1 크기의 정사각형으로 이뤄진 N X M 크기의 직사각형으로, 각각의 칸은 육지 또는 바다이다. 캐릭터는 동서남북 중 한 곳을 바라본다. 맵의 각 칸은 (A, B)로 나타낼 수 있고, A는 북쪽으로부터 떨어진 칸의 개수, B는 서쪽으로부터 떨어진 칸의 개수이다. 캐릭터는 상하좌우로 움직일 수 있고, 바다로 되어 있는 공간에는 갈 수 없다. 캐릭터의 움직임을 설정하기 위해 정해 놓은 매뉴얼은 이러하다. 1. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향(반시계 방향으로 90도 회전한 방향)부터 차례대로 갈 곳을 정한다. 2. 캐릭터의 바로 왼쪽 방향에 아직 가보지 않은 칸이 존재한다면, 왼쪽 방향으로 회전한 다음 왼쪽으..
정수형 %3d : 앞에 2자리를 확보한후 정수형을 표현한다. 3d이면 _ _ d로 출력 %03d : 앞에 2자리를 0으로 채운다. 00d로 출력

아이디어를 코드로 바꾸는 구현 구현 : 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정 구현유형의 문제 == 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제 대체로 사소한 조건 설정이 많은 문제일수록 코드로 구현하기가 까다롭다 라이브러리 사용 경험, 문법 숙지 여부에 따라서 다르다 완전탐색 : 모든 경우의 수를 주저없이 다 계산하는 해결방법 시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행 구현시 고려해야 할 메모리 제약 사항 1. C/C++에서 변수의 표현 범위 파이썬에서는 직접 자료형을 지정할 필요가 없으며 매우 큰 수의 연산 또한 기본으로 지원한다. 다만 파이썬에서의 시룻형 변수는 다른 언어와 마찬가지로 유효숫자에 따라서 연산 결과가 원하는 값이 나오지 않을 수 있다..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include #include enum keyword{ IS, CS, MS, EEE }; int main(){ enum keyword key; key=CS; //key=1; // [Error] invalid conversion from 'int' to 'keyword' [-fpermissive] printf("%d\n", key); //printf("%s\n", key); //key는 자료형이 keyword, 컴파일은 되지만 오류남. if(key==0) printf("IS"); else if(key==1) printf("CS"); else if(key==2) printf("MS"); else printf("EEE");..

※포인터 배열 : 포인터들의 배열 배열의 각 요소가 포인터로 메모리를 가리킨다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #include #include typedef struct stacknode{ int data; struct stacknode *link; }StackNode; void push(StackNode *s, StackNode **add, int value){ static int i=0; StackNode *node=(StackNode*)malloc(sizeof(StackNode)); node->data=value; node->link=NULL; s->link=nod..