no image
알고리즘 이론 - 스택
☑️ To-do 스택 이론 정리 week02 문제 풀이 2493 / 11866 / 3190 스택 스택에서는 두 가지 연산만을 사용해서 원소의 수정을 할 수 있다. push , pop LIFO (Last In First Out) : 후입선출 스택 용어 top (위치) : 삽입과 삭제 발생 push : top에 데이터 삽입 pop : top 데이터 삭제 후 반환 peek : top 데이터 확인 활용 DFS 백트래킹 재귀 Stack 자료형 정의(Ver 1) 스택의 원래 정의대로 스택 자료형의 조작 범위를 제한하기 위해 클래스로 새로운 자료형을 정의한다. 고정된 길이의 스택으로 정의한다. 스택 구현에 필요한 메소드들 __init__() : 스택 초기화 __len__() : 스택 내 데이터 개수 확인 is_emp..
2022.11.05
no image
Week01 TEST
☑️ To-do Week01 테스트 복기 자바 코딩테스트 대비 스터디 진행 숫자 블록 주차 요금 계산 Week02 문제 풀이 10828 / 10773 / 9012 / 17608 / 18258 / 2164 Week01 TEST 문제 1 : 10분 단순한 완전 탐색 문제. 입력으로 주어진 숫자의 나머지 연산과 몫 연산을 반복적으로 수행. 문제 2 : 10분 모든 경우의 수를 고려해야하는 완전 탐색 문제. combinations 모듈을 사용해서 모든 조합의 경우 도출 문제 3 : 10분 dp 로 접근. 입력 데이터의 개수가 12밖에 되지 않아, 애초에 dp 테이블 전체를 만들어주는 방향으로 구현 🙁 Worst : 문제 자체를 꼼꼼히 안읽어서 조건을 캐치하지 못한 경우가 있었다. -> 난이도에 비해 시간을 많이..
2022.11.05
no image
알고리즘 이론 - 정렬
☑️ To-do 정렬 알고리즘 정리하기 주요 정렬 알고리즘 안보고 코딩 해보기 ✔️ 버블 정렬 ✔️ 삽입 정렬 ✔️ 선택 정렬 ✔️ 셸 정렬 ✔️ 퀵 정렬 ✔️ 도수 정렬 CSAPP Ch 1.6 까지 정리하기 1. 버블 정렬 루프를 돌면서 인접 데이터간 대소 관계 비교 후, swap 연산 수행 루프가 하나씩 돌 때마다 오른쪽 원소가 정렬된다. 서로 이웃한 원소만 교환하므로 안정적이다. def bubble_sort(array): for i in range(len(array)): for j in range(len(array) - 1 - i): if array[j] > array[j + 1]: array[j], array[j + 1] = array[j + 1], array[j] return array 뒤에서 ..
2022.11.03
no image
알고리즘 이론 - 재귀
☑️ To-do 재귀 알고리즘 정리하기 하노이의 탑 로직 완벽 이해하기 N-Queens 로직 완벽 이해하기 CSAPP Ch 1.3 까지 정리하기 재귀(Recursion) 팩토리얼 함수로 구현하기 def factorial(n: int) -> int: if n > 0: return n * factorial(n - 1) else: return 1 math.factorial() : 인자가 정수가 아니거나 음수가 들어오면 ValueError 예외 처리를 내보낸다. 직접 재귀(direct) 자신과 동일한 함수를 호출하는 방식 간접 재귀(indirect) a( ) 가 b( ) 호출 ↔ b( ) 가 a( ) 호출 유클리드 호제법 GCD를 재귀적으로 구하는 방법 math 모듈에서는 math.gcd(integers) 로 ..
2022.11.03
no image
파이썬 알고리즘 기초 점검 / 정리
☑️ To-do 컴퓨팅 사고로의 전환 문제 다 풀기(파이썬) 컴퓨팅 사고로의 전환 문제 다 풀기(자바) ~15번 -> (❌중단) New 문제 풀기! do-it 알고리즘 Ch 2까지 보고 정리하기 새로 안 내용 위주! 복합문의 구조 [keyword] [식]: -> header ... 명령문 -> suite .. 파이썬 스타일 가이드 PEP 8 클래스명 : 카멜 케이스 함수명 : 스네이크 케이스 인덴트 : 4 $$sum = n * (n + 1) // 2$$ 가우스 덧셈 1부터 n까지 정수의 합 구하는 방법 비교 연산자 사용 🆚 드모르간 법칙 # 비교 연산자를 사용하는 방법 if 10 각 조건을 부정하고 논리곱을 논리합으로, 논리합을 논리곱으로 바꾸고 다시 전체를 부정하면 원래의 조건 과 같다. 🔎 모든 조건..
2022.10.30
no image
Mini Project
JWT? JWT(JSON Web Token) 유저를 인증하고 식별하기 위한 토큰 기반 인증 이미 서명된 토큰!! 민감한 정보를 담지 않는다!! 누구나 디코딩을 한다면 해당 정보를 볼 수 있기 때문! (https://jwt.io/) 해당 사이트에서 암호화 알고리즘을 통해 디코딩을 제공해준다! 공개키 / 개인키 방식으로 → 안전하게 인증 과정 수행가능 토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함된다. JWT는 별도의 인증 과정 없이 헤더에 포함되어 있는 JWT 정보를 통해 인증한다. 서버에 키가 있어야 수정할 수 있다. 각각의 정보에 대한 걸 해시와 같은 암호화 알고리즘을 적용하여 저장한다. Cookie 로그인 시, id, pw를 쿠키에 저장하고 서비스 이용시 인증이 필요할 때는 쿠..
2022.10.30