전체 글(34)
-
알고리즘) 자료구조 및 BigO 표기법
자료구조가 뭘까? 자료구조란 여러 데이터들의 묶음을 저장하고, 사용규칙을 정한 것이라고 볼 수 있다. 예시)자주 등장하게 되는 자료구조들...(컴퓨터공학) 컴퓨터공학에서 말하는 자료구조의 범위가 사실 파이썬보다 먼저 도입된 개념이기에 조금씩 다른 부분이 존재한다. 파이썬의 리스트와 자료구조의 리스트를 알아보자. 파이썬은 리스트 자료형이 자료구조의 연결리스트로 기능을 지원한다고 한다. 연결리스트 ? 이는 인덱스 크기를 자유롭게 확장이 가능하며, 서로 다른 자료형을 노드로 갖을 수 있다는 것이다. a=['a',1,(1,2)] a.append({'가' : 1}) print(a) 또한, 배열처럼 인덱스를 이용해서 해당 값에 접근이 가능하다. Big O 표기법 알고리즘의 효율성을 측정하기 위한 방법 : 연산을 얼..
2022.08.08 -
알고리즘) Baekjoon 14502 / 조합과 BFS
Question 2 : Virus 1 : Wall 0 : Empty Space Output : 안전영역의 최대 값 = Virus가 다 퍼진 후 남아있는 0의 개수. Condition Wall은 꼭 3개를 세워야한다. How to solve? 1. 벽을 어떻게 세울 것인가? 처음에는 효율적인 방법이 있을까 찾아봤는데, 답을 못찾음.. 뭔가 1기준으로 대각선으로 뚫려 있는 Empty Space를 막는게 Virus 확산을 최소화하지 않을까 생각은 해보았지만 정확한 구현 및 근거가 없었다. 결국에는 여러 코드들을 확인하면서, 완전탐색 'Exhausted Search' (브루트 포스를 이용하기로 했다.) 여러 자료를 찾아본 결과 이를 사용하는 근거(?), 야매(?) M의 입력값으로 유추해보았을때 코드 검증시 들어..
2022.08.07 -
알고리즘) Python and OOP
OOP : Object Oriented Programing 우리가 흔히 들었던 객체지향프로그래밍이 바로 OOP이다. 그러면 여기서 객체가 무엇인지 알아야 이해가 가능하다. 객체는 무엇인가? 객체는 의미 그대로 하나의 대상을 의미합니다. CS적으로 말하자면 클래스에서 정의한 것을 토대로 메모리에 할당된 것이다. 추상적인 의미를 인지하고 CS적으로 말하는 것을 생각해보자. 클래스는 무엇일까? 객체들이 공통적으로 갖는 속성들을 모아서 정의한 것이라고 볼 수있다. 은유적으로는 식상하지만 붕어빵을 찍어내는 틀이 클래스이고, 그 붕어빵틀로 생성된 붕어빵 하나하나가 전부 각각의 객체가 되는 것이다. 드디어 객체지향프로그래밍이 뭔지 보자. 크게 두 가지 특징이 있는데, 다음과 같다. 1) 객체들이 서로 유기적으로 동작..
2022.08.05 -
알고리즘) 예외처리 try/except and raise
예외 ? : 코드 실행 중 발생하는 에러를 지칭한다. 이러한 에러(예외)를 어떻게 처리할지를 알아보자. try: 실행할 코드 except: 예외가 발생시 처리하는 코드 else: 예외가 없을 시 실행하는 코드 finally: 예외 발생 여부와 관계없이 실행되는 코드 # case1 try: 실행할 코드 except 예외이름: # 특정 예외인 경우 처리 코드를 실행 예외가 발생시 처리하는 코드 # case2 try: 실행할 코드 except 예외이름 as 변수: # 발생한 예외의 에러 메시지가 변수에 포함된다. 예외가 발생시 처리하는 코드
2022.08.04 -
알고리즘) 지역/전역변수와 에레토스테네스의 체
지역변수/전역변수/global변수 g_var = 'g_var' def v(): global glo_var glo_var = 'glo_var in func v' lo_var = 'lo_var in func v' print() print(g_var) print(glo_var) print(lo_var) print(f'print vars in func v : {v()}') print(f'print vars out of func v : {g_var},{glo_var}\n{lo_var}') 결과는 ? 일단 print vars out of func v 에서는 lo_var가 defined 되지 않았다는 Error를 확인 할 수 있다. 빼고 진행하면? 그러면 g_var를 함수 내부에서 global 변수로 선언하고 변경한..
2022.08.03 -
알고리즘) 정규표현식,내장함수
정규표현식을 알아보고 코드를 해석해보자. a.b : "a + 모든문자 + b" a[.]b : 숫자가 아닌 모든문자 반복 match_list는 매치 될 수 있는 예시들을 담아둔 리스트이다. (큰 의미는 없음) me*t : match_list =['mt','met','meeeeet',...] me+t : match_list =['met','meeeet',...] (한 번 이상 반복되어야 하므로 mt 는 제외) {m,n} : m~n까지 반복 ab?c : b가 있어도 되고 없어도 된다. {0,1}로 표현 가능 import re p = re.compile('a{2,4}') print(p.match('aab')) print(p.match('ab')) re.match / re.search p = re.compile(..
2022.08.02