Programming Language/Python(10)
-
파이썬의 속도, 메모리 사용량
요즘수학 문제 푸는 느낌이라 재미없다고 안하던 백준을 하고 있다.(코테 보다가 내 실력에 충격먹어서 그런건 아님. 절대 아님) solved.ac에서 클래스 2를 풀던 중10989번 '수 정렬하기 3' 에서 막혔다... 파이썬으로 풀고 있었는데 자꾸 '시간 초과', '메모리 초과'가 뜨면서 실패했다... 하다가 ... 안되서 결국 검색을 했는데 파이썬은 counting sort로 해야 된다고 하는 것 같았다.근데 counting sort로 해도 안된다...llm이 짜준 counting sort로 했더니 된다...왜그런가 봤더니 함수 호출 오버헤드도 있고 사소한 것들까지 다 최적화 해줘야 되는 것 같다. input 대신 sys.stdin.readline이라던지...입력도 리스트로 받으면 메모리 낭비니까 입력..
2025.04.28 -
개행 문자가 포함된 json 읽기 - json.loads strict param
json.loads로 json 문자열을 읽을 때 개행문자 같은 제어문자가 들어있으면 에러가 뜹니다.이 에러를 없애려면 strict=False를 지정하면 됩니다.e.g. json.loads(json_str, strict=False) 공식문서 loads 설명에 strict 파라미터가 없고밑에 JSONDecoder 쪽에만 있어서 모르고 지나칠뻔... 근데 이상한걸 발견했는데loads에는 strict 파라미터가 있고 load에는 없습니다...테스트 결과 load는 항상 strict=False로 고정된 것 같습니다.뭔가 이상한...
2025.04.17 -
datetime, zoneinfo 모듈의 호환성
토이 프로젝트에 datetime, zoneinfo 모듈을 쓰다가 알아낸건데zoneinfo 모듈의 ZoneInfo 클래스는 datetime.timezone 클래스를 완벽히 대체하지는 못하는 것 같다. ZoneInfo 클래스로 타임존 정보를 줄 경우datetime.timetz로 얻은 time 객체는 tzinfo가 있지만 aware 객체는 아닌 것 같다.tzinfo는 있지만 utcoffset 정보가 제대로 세팅되어있지 않다. 공식 문서를 보면 time 객체가 aware 객체가 되려면1. tzinfo가 None이 아님.2. utcoffset 메소드가 None을 리턴하지 않아야된다.이 두 조건을 만족해야 aware 객체가 되는데위의 time 객체는 utcoffset이 None을 리턴한다. 그러나 ZoneInfo..
2025.04.16 -
Relative import
유튜브를 보다 파이썬 문법을 설명하는 채널에서 좀 잘못된 설명을 하는 것 같아 한 번 직접 설명해보려 합니다.https://www.youtube.com/watch?v=ZR-sYOdPSx8 솔직히 좀 실망했습니다...관련 분야 석사도 하시고 파이썬 관련 책까지 쓰신 분이던데 잘못된 내용을 강의로 하시길래...(정확히 말하자면 틀린 내용은 아니지만 불필요한 제약조건을 거시는...) 잡소리는 그만하고 설명하겠습니다. ----------------------------------------------------------------------------- relative import는from A import B 에서 A 부분에 .을 이용해 현재 파일(__file__) 위치를 기반으로 import하는 문법입니다...
2025.01.12 -
난수 생성 - numpy
난수(Random number)를 생성하는데에는 2가지 방법이 있습니다. 하드웨어 난수 생성기를 이용하는 방법과 유사난수 생성기를 이용하는 방법 하드웨어 난수 생성기(Hardware Random Number Generator)물리적인 처리를 통해 예측이 불가능한 난수를 생성e.g. 마이크로 자연의 노이즈를 입력받아 난수 생성(갓 노이만 선생님께서 쓰신 방법)유사난수 생성기(Pseudo Random Number Generator)난수를 흉내내기 위한 알고리즘을 사용하는 SWe.g. MT19937(Mersenne Twister) 메르센 트위스터(Mersenne Twister)란?유사난수 생성기 중 하나로 질 좋은 난수를 빠르게 생성할 수 있다. 그러나 암호학적으로 안전하지는 않다.제가 알기론 numpy의 디..
2022.07.16