전체 글
-
파이썬 문법(함수&람다, 표준 라이브러리)카테고리 없음 2023. 2. 2. 14:41
▶ 파이썬에서의 논리 연산자 다른 언어 파이썬 X && Y X and Y X || Y X or Y !X not X ▶ 리스트, 튜플 문자열, 딕셔너리에 사용 가능한 연산 in / not in x in 리스트 리스트에 x가 있으면 True x not in 문자열 문자열에 x가 없으면 True ▶ pass 키워드 디버깅에서 일단 조건문 틀만 만들어놓고, 처리부분을 나중에 작성하고 싶을때 score = 85 if score >= 80: pass # 나중에 소스코드를 작성하면 됨 else: print('성적이 80점 미만입니다.') print('프로그램 종료') ▶ 조건부 표현식 if~else문을 한 줄에 작성 가능 score = 85 result = "Success" if score >= 80 else "fa..
-
파이썬 문법(자료형, 입출력)카테고리 없음 2023. 2. 1. 23:49
▶실수형 표기 . 만 붙이면 저절로 a = 5. b = .7 print하면 5.0 과 0.7로 출력 됨 ▶ e또는 E를 이용한 지수표기 숫자e^지수 = 숫자*10^지수 (숫자 x 10의 N제곱) 예를 들어 1e9는 1*10^9 = 1,000,000,000(10억) 가령, 그래프 알고리즘 등에서 임의이 큰 수를 무한(INF)로 설정할 때, 가능한 최댓값이 10억 미만이라면 INF = 1e9 로 표기하는 등 이용한다. 이건 실수형 데이터이므로 정수형 데이터로 처리해야하는 상황(혹은 실수연산 오차 막고자 할때)이면 a = int(1e9) 이런식으로 형변환 해주면 된다. ▶ round() 파이썬은 IEEE754표준. 실수형 정보를 표현할 때 정확하지 않다. 0.3 + 0.6을 0.9로 가지지 못하고 0.8999..
-
빅오 표기법, Python 시간 복잡도CS/Algorithm & Data Structure 2023. 1. 31. 15:20
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..
-
[Design Pattern] Iterator 반복자 패턴CS/Design Pattern 2023. 1. 29. 19:09
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의 자료구조를 노출하지 않아도(혹은 몰라도) 내부 데이터에..
-
[Design Pattern] 시작하기CS/Design Pattern 2023. 1. 29. 17:48
최근 인터랙티브 무비 개발을 하면서 클래스 간의 관계를 맺고 정리하는 부분에서 부족함을 느꼈다. 이 부분의 발전을 위해서 디자인 패턴을 공부해보기로 했다. https://www.youtube.com/watch?v=An7kqZ5D7j8&list=PLe6NQuuFBu7FhPfxkjDd2cWnTy2y_w_jZ 디자인 패턴: 패턴처럼 자주 나타나는 클래스 사이에 관계를 맺는 방법 하나의 클래스가 많은 기능을 갖는 것은 바람직하지 않다. 한 클래스의 역할은 하나 내지는 최소한인 것이 좋다. 이렇게 하면 문제 발생 시 코드 수정/유지보수가 편하고 새로운 기능 추가하기에도 편하기 때문이다. GoF개발자분들이 만든 디자인 패턴이 가장 대표적이다. GoF는 객체지향 문제점을 분석해 카탈로그화 하여 아래와 같이 패턴으로 ..
-
[BOJ][C++] 백준 2908 상수CS/Algorithm & Data Structure 2022. 11. 23. 08:45
string을 int로 바꿔주는 stoi함수를 써 봤다. 근데 사실 이렇게 안 하고 끝자리부터 바로 비교하다가 더 큰걸 결과값으로 설정해주고 거꾸로 출력해줘도 됨 #include #include using namespace std; int main() { string n1, n2; cin >> n1 >> n2; string tmp1="", tmp2=""; for (int i = 2; i >= 0; i--) { tmp1 += n1[i]; tmp2 += n2[i]; } int num1 = stoi(tmp1); int num2 = stoi(tmp2); if (num1 > num2) cout
-
[BOJ][C++] 백준 11720 숫자의 합CS/Algorithm & Data Structure 2022. 11. 23. 08:01
% 연산을 이용해서 sum에 한자리씩 더해주려고 했지만 N (1 ≤ N ≤ 100) 의 범위를 고려하면 좋은 방법이 아니므로 접근법을 바꿨다. #include #include using namespace std; int main() { int N; char num; int result=0; cin >> N; for (int i = 0; i > num; result += num - 48; } cout