책읽기 138

[파이썬 알고리즘 인터뷰][문자열] 로그 파일 재정렬 (중요)

이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다. 문제 정의 로그 재정렬 기준 가장 앞 부분은 식별자 우선순위 : 문자 > 숫자 문자가 같으면 식별자 숫자 로그는 입력 순서 유지 책에서 구현된 코드 def reorderLogFiles(self, logs: list[str]) -> list[str]: letters, digits = [], [] for log in logs: if log.split()[1].isdigit(): digits.append(log) else: letters.append(log) letters.sort(key=lambda x: (x.split()[1:], x.split()[0])) return letters + digits 기억해야할 기법 문제..

책읽기 2021.07.16

[파이썬 알고리즘 인터뷰][문자열] 문자열 뒤집기

이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다. 책에서 구현된 코드 def reverseString(self, s: list[str]) -> None: s.reverse() 기억해야할 기법 책에 기술된 s의 type이 현재는 불가능 책에 기술된 내용 - s: List[str] - List를 찾지 못함 가능한 방식으로 변경 - s: list[str] 값을 저장하는 등호에 쉼표(,) 활용 a, b = c, d 객체 내부값을 수정할 시 메서드를 호출할 것 내가 구현한 코드 def reverse_string(s:list): for i in range(len(s) // 2): s[i], s[len(s)-1-i] = s[len(s)-1-i], s[i] 함수 parameter ..

책읽기 2021.07.16

[파이썬 알고리즘 인터뷰][문자열] 유효한 팰린드롬

이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다. 책에서 구현된 코드 def isPalindrome(s: str) -> bool: s = s.lower() s = re.sub('[^a-z0-9]', '', s) return s == s[::-1] 기억해야할 기법 isalnum(), isalpha() 알파벳인지, 숫자인지 등등을 확인해주는 내장함수가 있음 re(pattern, replace, str) str에서 pattern을 찾아 replace로 바꿈 re.sub('[^a-z0-9]', '', s) - 알파벳 소문자와 숫자가 아닌 것은 삭제 - [] 중에 하나 - ^는 not 문자 뒤집기 [::-1]이 reverse보다 빠름 [시작인덱스 : 끝인덱스 : 다음인덱스에 ..

책읽기 2021.07.16

[데이터 분석을 위한 SQL 레시피][1장] 빅데이터 시대에 요구되는 분석력이란?

이 글은 "데이터분석을 위한 SQL 레시피 (가사키 나가토, 다미야 나오토 지음)"을 읽고 주관적으로 작성된 글입니다. 1. 데이터를 둘러싼 환경의 변화 1) 접근 분석 도구의 등장 기존 데이터 키워드 2010년도까지는 접근 분석 도구가 데이터 분석의 주역 접근 분석 도구로 하던 일 - 웹사이트에 기록된 접근 로그 파일 분석 페이지 뷰의 추이를 집계 기록되어 있는 시간 URL 확인 구글 애널리틱스(Google Analytics) 접근 분석 도구 중 구글 애널리틱스가 영향력이 컸음 HTML에 태그에 사용자 추적 전용 스크립트를 넣어 데이터 축적/분석이 데이터를 다루는 일이었음 사용자 행동의 부상 구글 애널리틱스는 유입 키워드, 이탈률, 직귀율 같은 당시 파악하기 힘들던 지표까지 제공했음 이로써 사용자 행동..

책읽기 2021.07.15

[파이썬 알고리즘 인터뷰] 2부 - 파이썬 (~ 5장 - 리스트, 딕셔너리)

이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다. 5장 리스트, 딕셔너리 리스트와 딕셔너리는 코딩 테스트에서 무조건 사용 문제 풀이에 자유자재로 활용할 수 있도록 숙지 1) 리스트 리스트란? 순서대로 저장하는 시퀀스 - 입력 순서가 유지됨 값을 변경할 수 있는 Mutable 동적 배열로 구현됨 - C++의 Vector, Java의 ArrayList 매우 다양한 기능을 제공 - 스택/큐로써의 기능도 모두 제공 - 이는 다른 언어에 비해 매우 유리한 조건 큐로써 사용할 시 주의 - pop(0)는 O(n)을 소요 - 가장 앞의 요소를 제외한 나머지 요소들을 copy해야하기 때문 - Deque를 대산 사용 (추후 다룰 예정) min/max도 O(n) - 순차탐색을 하는듯 -..

책읽기 2021.07.12

[파이썬 알고리즘 인터뷰] 2부 - 파이썬 (~ 4장 - 빅오, 자료형)

이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다. 4장 빅오, 자료형 1) 빅오 빅오란? 입력값이 무한대로 향할 때 함수의 상한을 설명하는 수학적 표기법 = 점근적 실행 시간(Asymptotic Running Time)을 표기할 때 가장 널리 쓰이는 수학적 표기법 중 하나 시간 복잡도(Time Complexity) = 점근적 실행 시간 어떤 알고리즘을 수행하는 데 걸리는 시간을 설명하는 계산 복잡도(Computational Complexity) 빅오로 시간 복잡도를 표현할 때는 최고차항만 표기, 계수 무시 (ex) $$4n^2+3n+4 \approx O(n^2)$$ 빅오의 종류 1 O(1) 해시 테이블 상수 시간 매우 가치있음 2 O(log n) 이진 탐색 입력에 영..

책읽기 2021.07.09

[파이썬 알고리즘 인터뷰] 2부 - 파이썬 (~ 3장 - 파이썬)

이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다. 3장 파이썬 파이썬은? 네덜란드 컴퓨터 과학자 귀도 반 로섬 (Guido Van Rossum)이 만듦 파이썬의 원칙 읽기 쉬워야함 - 중괄호 -> 인덴트 사용자가 모듈패키지 생성/배포가 가능해야함 - pip를 통해 패키지 인덱스 제공 인공지능을 주도하는 표준 언어 연구개발의 주력 언어 1) 파이썬에 대한 이해 파이썬에 대한 깊은 이해가 필요함 언어의 세부 구현을 상세히 알아야 문제를 제대로, 신속하게, 정확하게 풀 수 있음 제대로 사용법을 숙지해야 제대로 사용할 수 있음 파이썬 공식 인터프리터 Cpython (Pypy도 있음) 2) 파이썬 문법 ※ 요약 인덴트 : 4칸 공백 네이밍 컨벤션 : 스네이크 케이스 타입 힌트..

책읽기 2021.06.29

[파이썬 알고리즘 인터뷰] 1부 - 코딩 인터뷰

이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다. 1장 코딩 인터뷰 1) 코딩 인터뷰 종류 오프라인 코딩 인터뷰 면접관들 앞에서 오프라인으로 라이브 코딩하는 인터뷰 오프라인 화이트보드 코딩 인터뷰 면접관들 앞에서 화이트보드를 이용하여 설명/구현하는 인터뷰 온라인 코딩 인터뷰 면접관들 앞에서 온라인으로 라이브 코딩하는 인터뷰 온라인 코딩 테스트 플랫폼을 통해 문제를 푸는 테스트 ※ 라이브 코딩 / 화이트 보드 / 코딩 테스트 2) 코딩 인터뷰를 위한 온라인 테스트 플랫폼 해커랭크 (카카오) 코딜리티 (네이버) 리모트인터뷰 프로그래머스 (대부분 기업들이 많이 사용하는듯, 네이버도 최근에 사용) 리트코드 (해당 책에서 사용) 3) 온라인 코딩 테스트 사전 준비사항 연습장 ..

책읽기 2021.06.23