전체 글
-
[Python 자료구조 #스택3] 미로 탐색Programming 기초/Python 2023. 5. 10. 02:06
* 깊이 우선 탐색(Depth-First-Search, DFS) * 너비 우선 탐색(Breadth-Firs-Search, BFS) * 미로탐색 알고리즘 from Stack import * def isValidPos(x, y): if x = MAZE_SIZE or y >= MAZE_SIZE: return False else: return map[y][x] == "0" or map[y][x] == "x"# (x,y)는 리스트에서 [y][x]가 된다. def DFS(): stack = Stack() stack.push((0, 1)) print("DFS: ") while not stack.isEmpty(): here = stack.pop() print(here, end="->"..
-
[Python 자료구조 #스택2] 스택을 이용한 중위표기 수식의 후위표기 변환Programming 기초/Python 2023. 5. 6. 14:55
* 후위표기 수식 계산 구현 def evalPostfix(expr): s = Stack() for token in expr: if token in "+-*/": val2 = s.pop() val1 = s.pop() if (token == '+'): s.push(val1 + val2) elif (token == '-'): s.push(val1 - val2) elif (token == '*'): s.push(val1 * val2) elif (token == '/'): s.push(val1 / val2) else: s.push(float(token)) return s.pop() * 연산자(Operator) 우선순위 반환 함수 def precedence(op):# op는 operator의 약자 if op == ..
-
[Python 자료구조 #스택1] 소스 파일에서 괄호 검사Programming 기초/Python 2023. 5. 6. 03:54
1. 스택을 클래스로 구현하고 2. 파일 내에서 괄호를 검사하는 checkBracketsV2() 함수를 정의. 3. 파일을 읽기모드로 열어서 줄 단위로 리스트를 만들고 4. 만들어진 리스트에 checkBracketsV2() 함수를 호출하여 검사한다. 아래 코드블럭에서는 소스파일 대신 txt파일을 불러왔다. class Stack: def __init__(self): self.top = [] def __str__(self): return str(self.top) def isEmpty(self): return len(self.top) == 0 def size(self): return len(self.top) def clear(self): self.top = [] def push(self, item): self..
-
C언어 기초#14 동적 메모리와 연결 리스트Programming 기초/C Language 2023. 5. 3. 19:49
* 동적 할당 메모리 프로그램이 메모리를 할당받는 방법에는 정적과 동적의 2가지 방법이 있다. 정적 메모리 할당(static memory allocation)이란 프로그램이 시작되기 전에 미리 정해진 크기의 메모리를 할당받는 것이다. 이 경우, 메모리의 크기는 프로그램이 시작하기 전에 결정되며 프로그램의 실행 도중에 크기가 변경될 수는 없다.int score_s[100]; //배열을 선언하면 정적으로 메모리 할당받는다.동적 메모리 할당(dynamic memory allocation)이란 프로그램이 실행 도중에 동적으로 메모리를 할당받는 것을 말한다. 필요한 만큼의 메모리를 할당받아 사용하고, 메모리를 반납한다.score = (int *) malloc(100*sizeof(int)); 그렇다면 동적 할당이 ..
-
C언어 기초#13 스트림과 파일 입출력 printf scanf 심화, fopen(), fclose(), 이진 파일 읽고 쓰기, 버퍼링, fseek(), rewind(), ftell(), foef()Programming 기초/C Language 2023. 5. 3. 19:20
* 스트림(stream) 스트림이란 모든 입력과 출력을 바이트(byte)들의 흐름으로 생각하는 것. 장점 : 장치 독립성. 입출력 장치에 상관없이 프로그램을 작성할 수 있다. 특징 : 버퍼(buffer) 사용. cpu의 속도가 입출력 장치보다 훨씬 빠르기 때문에 버퍼에 어느 정도 데이터가 쌓이면 cpu가 한 번에 데이터를 가져간다. 출력도 마찬가지. * 표준 입출력 스트림(standard input/output stream) 프로그램이 시작될 때 자동으로 만들어지고, 프로그램이 종료될 때 자동으로 소멸된다. 이름 스트림 연결 장치 관련 함수 예시 stdin 표준 입력 스트림 키보드 scan() stdout 표준 출력 스트림 모니터의 화면 printf() stderr 표준 오류 스트림 모니터의 화면 fpr..
-
C언어 기초#12 전처리 및 비트 필드Programming 기초/C Language 2023. 4. 28. 17:04
* 전처리기(preprocessor) 본격적으로 컴파일하기에 앞서 소스 파일을 처리하는 컴파일러의 한 부분. 전처리기는 보통 컴파일러에 포함되어 있고 자동으로 실행되며 컴파일러의 하나의 요소로 취급됨. 전처리기는 소스 파일을 처리하여 수정된 소스 파일을 생산한다. 전처리기는 몇 가지의 전처리기 지시자들을 처리한다. 이 지시자들은 #기호로 시작한다. e.g) #include 하나의 프로그램이 만들어지기까지의 과정은 위의 그림과 같다. 두 번째 단계에 해당하는 컴파일러의 내부를 살펴보면 아래 그림과 같이 전처리기와 컴파일러가 있다. (오브젝트 파일은 기계어로 번역된 파일이다.) * 단순 매크로(macro) #define 지시자를 이용하면 숫자 상수에 의미 있는 이름을 부여할 수 있다. #define 문을 이..
-
[Python 기초 #10] 예외 처리Programming 기초/Python 2023. 4. 27. 16:54
* try try: ... except [발생 오류[as 오류 메시지 변수]]: ... else: # 오류 발생하지 않은 경우 실행 (try가 참값일 때) ... finally: # 무조건 마지막에 실행 여기서 [ ] 기호는 괄호 안의 내용을 생략할 수 있다는 관례 표기법이다. except 발생 오류: 는 오류가 발생했을 때 except문에 미리 정해 놓은 오류 이름과 일치할 때만 except 블록을 수행한다는 뜻이다. except 발생 오류 as 오류 메시지 변수: 는 오류메시지의 냉요을 알고 싶을 때, 발생오류를 지정한 오류 메시지 변수에 담는 것이다. try: 4/0 except ZeroDivisionError as e: print(e) ----------------------------------..
-
[Python 기초 #9] 패키지Programming 기초/Python 2023. 4. 27. 15:45
* 패키지(Packages) 도트(.)를 사용하여 파이썬 모듈을 계층적(디렉터리 구조)으로 관리할 수 있게 해준다. * 패키지 만들기 예) game 패키지의 구조 game/ _ _init_ _.py sound/ _ _init_ _.py echo.py wav.py graphic/ _ _init_ _.py screen.py render.py play/ _ _init_ _.py run.py test.py 여기서 gmae, sound, graphic, play는 디렉터리 이름이고 확장자가 .py인 파일은 파이썬 모듈, game 디렉터리가 이 패키지의 루트 디렉터리이고 sound, graphic, play는 서브 디렉터리이다. 1. 서브 디렉터리(폴더)를 만들고 빈 파일의 모듈을 만들어 놓는다. 2. echo모듈..