일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
- 토스면접
- Java
- 2022 블라인드 공채
- 스케쥴링 알고리즘
- 카카오 기술면접
- HandlerMapping
- 컴공 3학년
- 카카오 면접 후기
- MappingRegistry
- 경주로 건설
- 카카오
- 해시테이블
- 인덱스 자료구조
- 토스공채
- Garbage Collecting
- 토스코테
- Demand Paging
- HashTable
- 자료구조
- 카카오 코딩테스트
- Python
- 토스NEXT
- 운영체제
- 프로세스
- 토스 합격
- spring boot
- cpython
- binary semaphore
- 카카오 블라인드 공채
- spring
- Today
- Total
목록Python (2)
weasel의 우당탕탕 개발기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bwgJvu/btrMleEVXiV/L3dMy9S5NLAnSU9Kqv3wa1/img.png)
GIL은 Global Interpreter Lock의 약자이다. Global이 붙으니 전역적이라는 의미이고, Lock을 사용하니 무언가를 제한한다는것은 알겠는데 Interpreter는 뭘까? 인터프리터에 대해서 제한을 건다는 것이 어떤 의미일까? 아래에서 쭉 알아보자. Interpreter 짧게 얘기하면 Python 인터프리터는 코드를 한 줄씩 읽으면서 실행하는 프로그램이다. 이 방식때문에 인터프리터 언어가 느리단 얘기가 나오는 것이고, Java에서 이를 개선해서 등장한 방식이 JIT다. 이 인터프리터의 구현체는 여러가지가 있는데 대표적인 구현체가 C로 구현한 것이고, 이를 CPython이라고 한다. 이 글에서는 CPython 기준으로 설명할 것이다. Python 위키 항목을 읽어보면 Non-CPytho..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/OzUk0/btrMld67qpC/UKatz7852s4pO7p9vkMcek/img.jpg)
문제 상황 백준 빵집를 풀때 이상한 점이 확실히 생겼다. 일반적으로 python에서 방문 여부를 확인하기 위해 set과 list중에 하나를 사용한다. set같은 경우는 잘못된 접근 같은 행동에서 안전한 편이고 대부분의 기능에서 O(1)의 시간이 보장된다고 알고 있기 때문에 set을 이용한 풀이를 종종했다. List에서는 미숙한 코드로 indexError를 경험할 수 있다. 이 문제는 naive 하게 set을 사용하면 시간초과를 당한다. 처음엔 논리를 잘못 구성해 recursionDepth가 커져서 시간초과가 나는건가 라고 생각했지만 논리에는 문제가 없었다. 그래서 set만을 list로 바꿔주었더니 통과했다. 분명 lookup도 똑같이 O(1)이고 set에서는 add도 O(1)이라고 알고 있는데 왜 차이가..