본문 바로가기

전체 글

(151)
파이썬 알고리즘 문풀 탬플릿 (링크)  입력 : 출력 :  (예시) 직관 및 접근 공부내용 풀이1차 풀이 # 1차 풀이 해당 글은 "파이썬 알고리즘 인터뷰(박상길)"을 공부한 내용과 책의 코드가 포함되어 있습니다.https://github.com/onlybooks/python-algorithm-interview/tree/master
[알고리즘 코딩캠프 1일차] 뮤터블, 얕은 복사, 문자열, 딕셔너리, 시간복잡도, 입력, 출력, 팁, 파이써닉 - 리스트 컴프리헨션, 패킹, 언패킹, enumerate, Counter 제가 재학 중인 대학교에서 열린 `파이썬 알고리즘 코딩캠프(25.02.03 ~ 25.02.14)` 수업을 듣고 정리한 글입니다.목차 : 뮤터블 vs 이뮤터블할당 vs 얕은 복사 vs 깊은 복사문자열딕셔너리시간복잡도입력출력팁파이써닉리스트 컴프리헨션패킹, 언패킹enumerateCounter주의사항mutable과 immutable의 차이더보기- 파이썬은 모든 게 객체- 3이 어디에 있고 걔를 가리키는 주소값이 있는 느낌- 리스트는 뮤터블이라 뭘 추가해도 똑같은 객체를 가리킴- 문자열은 이뮤터블이라 새로 객체 생성 후 포인터가 변경 → 원래 놈은 참조가 사라지니 가비지 콜렉터가 수거해갈 예정할당 vs 얕은 복사 vs 깊은 복사더보기#1 할당a = [1,2,3]b = ab[0] = 4print(b) # [4, 2..
[Python/LeetCode] 1. Two Sum https://leetcode.com/problems/two-sum/Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.You may assume that each input would have exactly one solution, and you may not use the same element twice.You can return the answer in any order.덧셈하여 target을 만들 수 있는, 배열의 두 숫자 인덱스를 반환하라.* 오직 하나의 valid한 솔루션만이 존재한다. 입력 : 리스트 nums와 정수 target..
[알고리즘] 정적 배열 vs 동적 배열 vs 연결 리스트 차이점 완벽정리. 1. 정적 배열- 크기가 고정되어 있으며, 선언 시 크기를 지정해야 함.- 크기 변경이 불가능함. 크기를 늘리려면 새로운 배열을 만들어 재할당해야함.- 메모리에 연속된 공간을 할당받음. - C언어 : 그냥 `int arr[10];` 같은 기본적인 배열이 정적 배열임.- C++ : C언어와 마찬가지, `std::array`도 있음.- 자바 : 그냥 `int[] arr = new int[10];` 같은 기본적인 배열이 정적 배열임.- 파이썬 : `array.array`와 `np.array`이 정적 배열임. 2. 동적 배열- 크기가 `doubling`을 통해 자동으로 늘어남.- 초기에는 작은 크기로 시작해, 크기가 부족하면 지정된 `Growth Factor`대로 더 큰 크기의 배열을 할당한 후, 기존 배열의 ..
[Data] 문자 인코딩 정리 - ASCII, 유니코드, UTF-8 등 우리가 Text data를 다룰 때, 컴퓨터에 글자를 저장하기 위해서는 글자를 숫자로 변환해야 한다. 인코딩(Encoding) : 문자와 같이 사람이 해석할 수 있는 데이터를 이진 형식(binary format)으로 변환하여 컴퓨터가 처리할 수 있게 하는 과정 (글자 -> 숫자)디코딩(Decoding) : 인코딩의 역과정으로, 이진 형식의 데이터를 사람이 해석할 수 있는 문자 형태로 변환하는 과정. (숫자 -> 글자)ASCII- 영문 알파벳을 표현하기 위한 초기의 대표적인 문자 인코딩 표준(문자 집합)- 또는 이 자체를 인코딩으로 분류하기도 함.- 초기에 문자를 표현하던 대표적인 방식.- 영어 알파벳 대소문자, 숫자, 특수 문자 및 이스케이프 문자 포함. - 한 문자를 1바이트로 취급.- 맨 앞 1비트는..
[알고리즘] 안정 정렬 vs 불안정 정렬 (Stable Sort vs Unstable Sort). https://cuffyluv.tistory.com/123 이전에 작성한 글 참고. data = [(1, 3, 5, 7, 9), (1, 3, 2, 4, 8), (2, 2, 3, 6, 7), (3, 1, 6, 8, 10)]result = sorted(data, key=lambda x: (x[1], x[0]))print(result) # [(3, 1, 6, 8, 10), (2, 2, 3, 6, 7), (1, 3, 5, 7, 9), (1, 3, 2, 4, 8)]위와 같은 파이썬 코드가 있다.튜플을 요소로 가지는 리스트에서, 각 요소를 정렬할 건데,첫 번째 정렬 기준을 튜플의 두 번째 요소,그리고 위의 첫 번째 정렬기준이 일치할 경우, 튜플의 첫 번째 요소를 정렬 기준으로 하여서 정렬하는 코드이다. 그러면, 튜..
[Python/LeetCode] 5. Longest Palindromic Substring https://leetcode.com/problems/longest-palindromic-substring/ 입력 : 숫자와 알파벳으로 이루어진 문자열 s(소문자만 포함인가?)출력 : 가장 긴 팰린드롬 부분 문자열Input: s = "babad"Output: "bab"Explanation: "aba" is also a valid answer.Input: s = "cbbd"Output: "bb" 팰린드롬에 관한 개념은 다음 글 참고.https://cuffyluv.tistory.com/117 [Python/leetcode] 125. Valid Palindromehttps://leetcode.com/problems/valid-palindrome/description/주어진 문자열이 팰린드롬인지 아닌 지 판별하..
[Python] sorted() 함수와 list.sort() 메서드 설명 및 비교. 1. sorted() 함수- `iterable 객체(리스트, 튜플, 문자열 등)`를 정렬하여 `정렬된 새로운 리스트`를 반환하는 내장 함수.- 쉽게 말해, `iterable`를 받아서 `list`를 반환함.문법result = sorted(iterable, key=None, reverse=False)매개변수1. iterable (필수)- 정렬 대상이 되는 iterable 객체.- ex. `str, list, tuple, dict의 key 등`2. key (선택, 기본값 : None)- 정렬 기준을 지정하는 함수.- 각 요소에 대해 `key`로 전달된 함수가 호출되며, 반환된 값이 정렬 기준이 됨.- 기본값은 `None`로 이 경우 요소 자체를 기준으로 정렬.3. reverse (선택, 기본값 : False..