본문 바로가기

전체 글16

컴파일러, 과제와 함께하는ㅠ 컴파일러 과제와 함께 컴파일러 요놈을 알아보자! 1장 간단한 번역기 - HW1: Recursive-Descent 파서를 이용한 사칙연산 계산기 컴파일러 HW1 - Recursive-Descent for [+-*/] (tistory.com) - HW1A: 개선된 Recursive-Descent 파서를 이용한 사칙연산 계산기 (명세서에 맞춰 수정한) 컴파일러 HW1A - (Better) Recursive-Descent for [+-*/] (tistory.com) - 번외1: LR파서를 이용한 계산기 2장 C언어의 문법 & 3장 어휘 분석기 - Yacc로 C언어 문법을 정의한다는 겁니다. - Lex로 token 정의를 한다는 거예요. - 그러면 - HW2: yacc&lex로 C언어 구문분석기 4장 자료구조 -.. 2023. 10. 10.
13460.cpp - 구슬 탈출 2 #include #include using namespace std; struct step { int ry, rx; //빨간공 int by, bx; //파란공 int cnt; //카운트 }; //graph, visited 준비 char graph[11][11]; bool visited[11][11][11][11]; // n, m 준비 int n, m; // dy, dx 준비 int dy[4] = {1,-1,0,0}; int dx[4] = {0,0,1,-1}; // move: graph 내 #이나 O를 만날 때까지 이동 void move(int& ny, int& nx, int& distance, int& i) { while (graph[ny+dy[i]][nx+dx[i]]!='#' && graph[ny][n.. 2023. 10. 10.
C++로 코테를? Python으로 코딩테스트를 시작했던 나, C++로 간다... 결국 돌고 돌아 C++~~ 뭐 사실 C++로 코테 본 경험도 좀 있다!! 그리고 근본하면 C++ 아닌감~ 언어 전환시 필요한 부분들을 적어보자 (진행중) - 뭐 세미콜론 조심하는 건 당연하겠지? 0. 입출력 빠르게 하는 마법 쓰기 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 1. 함수에서 *변수를 잘 활용하자 - C++은 슬프게도 Python과 달리 return값을 여러 개로 못한다. - 그렇다면!!! - 그냥 가지고 놀 변수를 미리 선언, 그리고 Call by reference로 처리한다. #include using namespace std; void swap(int *.. 2023. 10. 10.
nCnt - nCounter 리팩토링 기존 nCounter ├── Yolo_Folder │ ├── yolov3.cfg │ ├── yolov3.md │ └── yolov3.weights ├── main.py ├── nCnt.txt ├── photo.jpg └── analysis.jpg 개선 후 nCounter ├── Yolo_Folder │ ├── yolov3.cfg │ ├── yolov3.md │ └── yolov3.weights ├── main.py └── yolo.py ├── nCnt.txt ├── photo.jpg └── analysis.jpg 0. 리팩토링 목표 ㅇ 기능 별 분리 (객체화) ㅅ 모듈 별, 테스트코드 추가 ㅅ 변수명 규칙 통일 ㅅ 기존 기능 유지 보수 ( 1 => "activate" ) X 필요 시 새로운 기능 추가 (.. 2023. 10. 6.