목록CS (67)
예지의 개발 로그포스 (Yeji's Log Force)
나는 아래와 같이 풀었다. 1,1칸부터 8,8칸까지 돌며 조건에 맞는 칸만 체크를 했다. input_data = input() r = int(input_data[1]) c = ord(input_data[0])-ord('a')+1) cnt=0 for i in range(1,9): for j in range(1,9): if abs(r-i)==2 and abs(c-j)==1: cnt+=1 if abs(r-i)==1 and abs(c-j)==2: cnt+=1 print(cnt) 처음에 이동할 수 있는 방향이 몇 개 없으니 그것만 체크하면 되겠다 라고 생각했다 근데 직전에 푼 브루트포스 문제의 여파인지, 8 x 8 좌표는 작으니 그냥 다 체크하자고 생각해버렸던 거 같다. 정답으로 보여주신 코드인데, 처음 생각대로..
1. Big-O Notation 빅오 표기법 가장 빠르게 증가하는 항만 고려하면 된다.(상한) -> 연산 횟수가 3N^3 + 5N^2 + 1000000이라면 O(N^3)으로 표현 - 좋은 것 부터(빠른) O(1) 상수 시간 O(logN) 로그 시간 O(N) 선형 시간 O(NlogN) 로그 선형 시간 O(N^2) 이차 시간 O(N^3) 삼차 시간 O(2^n) 지수 시간 O(N!) 팩토리얼 시간 - 나쁜 것 까지(느린) 예시 1) N개 데이터 합을 구하는 코드 array = [3,5,1,2,4] sum = 0 for x in array: sum += x print(sum) 정답: O(N) 예시 2) 2중 반복문을 이용한 코드 array = [3,5,1,2,4] for i in array: for j in a..
https://www.youtube.com/watch?v=T3sXKtlr0Ow&list=PLe6NQuuFBu7FhPfxkjDd2cWnTy2y_w_jZ&index=2 Container / Aggregator: 동일한 형태의 데이터를 여러 개 지닌 것 그 예시로는 Array, Linked List, Tree, Graph, Table(DBMS) 등이 있다. 1. Iterator의 개념 이 데이터들을 가져오는 방법은 Aggregator의 종류에 따라 모두 다르기 때문에 이를 통일된 방법으로 가져오도록 돕는 것이 Iterator pattern이다. 다양한 형태의 Aggregator의 데이터에 접근할 때에 표준화 된 공통API. 한편으로는 Aggregator의 자료구조를 노출하지 않아도(혹은 몰라도) 내부 데이터에..
최근 인터랙티브 무비 개발을 하면서 클래스 간의 관계를 맺고 정리하는 부분에서 부족함을 느꼈다. 이 부분의 발전을 위해서 디자인 패턴을 공부해보기로 했다. https://www.youtube.com/watch?v=An7kqZ5D7j8&list=PLe6NQuuFBu7FhPfxkjDd2cWnTy2y_w_jZ 디자인 패턴: 패턴처럼 자주 나타나는 클래스 사이에 관계를 맺는 방법 하나의 클래스가 많은 기능을 갖는 것은 바람직하지 않다. 한 클래스의 역할은 하나 내지는 최소한인 것이 좋다. 이렇게 하면 문제 발생 시 코드 수정/유지보수가 편하고 새로운 기능 추가하기에도 편하기 때문이다. GoF개발자분들이 만든 디자인 패턴이 가장 대표적이다. GoF는 객체지향 문제점을 분석해 카탈로그화 하여 아래와 같이 패턴으로 ..