Stay Hungry Stay Foolish

TIL 29

[TIL] 2024년 11월 14일

파이썬TypeError: slice indices must be integers or None or have an __index__ method타입이 맞지 않아서 발생한 에러이다. 다음은 위 에러가 난 코드이다. N = info[0]for i in info[1:N:2]: ...현재 N은 str 형이다. 그래서 slice 를 사용하려고 할 때 에러가 난 것이다.슬라이싱 할 때는 int 타입만 넣을 수 있다. 해결 방법N = int(info[0])int 형으로 변환하면 에러가 나지 않는다.📜 작성한 게시글[SWEA 코딩테스트 3260. 두 수의 덧셈] 👉 https://dev-cloud.tistory.com/409 [SWEA 코딩테스트 4047. 영준이의 카드 카운팅] 👉 https://dev-clou..

TIL 2024.11.15

[TIL] 2024년 11월 11일

파이썬단어 중복 체크 시 시간복잡도 list vs set 자료구조리스트에서의 in 연산은 O(n)의 시간이 소요되고, set 자료구조는 O(1)의 시간이 소요된다. 따라서 중복 체크 시 set를 사용하여 코드를 작성하는 것이 더 효율적이다.  📜 작성한 게시글[Programmers 코딩테스트 L2. 짝지어 제거하기] 👉 https://dev-cloud.tistory.com/398 [Programmers 코딩테스트 L2. 카펫] 👉 https://dev-cloud.tistory.com/399 [Programmers 코딩테스트 L1. 푸드 파이트 대회] 👉 https://dev-cloud.tistory.com/400 [Programmers 코딩테스트 L2. 점프와 순간 이동] 👉 https://de..

TIL 2024.11.12

[TIL] 2024년 11월 10일

파이썬n 개의 배열을 만들고자 할 때 안 되는 예시fibo = []*n fibo = []*n는 리스트를 만들지만, 이 방식은 n개의 배열을 만들지 않는다. 실제로는 빈 리스트에 n을 곱한 결과로, 빈 리스트가 유지된다.  💡 n개의 빈 요소 리스트를 만들고 싶다면  1️⃣ None을 포함한 길이 n의 리스트를 생성fibo = [None] * nprint(fibo) # 출력: [None, None, None, None, None]  2️⃣ 특정 값으로 초기화된 길이 n의 리스트 생성fibo = [0] * nprint(fibo) # 출력: [0, 0, 0, 0, 0]  피보나치 수 1️⃣ 1234567로 나누는 이유값의 크기 제한피보나치 수는 순서가 커질수록 매우 빠르게 증가하기 때문에, 큰 숫자를 계..

TIL 2024.11.11

[TIL] 2024년 11월 09일

파이썬이진법 변환 방법 1️⃣ bin() 함수 사용bin() 함수는 숫자를 2진법 문자열로 변환하여 반환n = 5binary_str = bin(n) # 결과: '0b101' 2️⃣ format() 함수 사용format() 함수의 'b' 포맷 코드를 사용하여 2진법 문자열을 얻을 수 있다.n = 5binary_str = format(n, 'b') # 결과: '101' 3️⃣ f-string을 사용한 포맷팅f-string 안에서도 :b를 붙여서 2진법으로 출력할 수 있다.n = 5binary_str = f"{n:b}" # 결과: '101' 4️⃣ bin() 함수 + 슬라이싱bin() 함수의 결과에서 접두사 '0b'를 제거하기 위해 슬라이싱을 사용할 수 있다.n = 5binary_str = bin(n)[..

TIL 2024.11.10

[TIL] 2024년 11월 08일

파이썬리스트, 큐, 스택이 비어있는지 확인하는 방법 1️⃣ 방법 1if stack: # 스택이 비어있지 않으면  2️⃣ 방법 2if len(stack) == 0: 간단하게 방법 1을 쓰도록 하자.  배열끼리 최대 최소를 비교할 때만일 배열 두 개를 비교하여 min() 함수를 사용했을 때 무슨 기준으로 결과를 반환하는지 확인하자. min(A, B)는 A와 B를 사전순(lexicographical)으로 비교하여 첫 번째로 사전순으로 작은 리스트를 반환한다. 여기서 사전순 비교는 두 리스트의 각 요소를 앞에서부터 순차적으로 비교하며, 첫 번째로 다른 값이 나타나는 위치에서 더 작은 값을 가진 리스트가 "작다"고 판별된다.A = [1, 4, 2]B = [5, 4, 4]print(min(A, B)) # [1,..

TIL 2024.11.09

[TIL] 2024년 11월 07일

파이썬코드 비교 1️⃣ 컴프리헨션 사용def correct(student_answer, answers): return sum(1 for i, ans in enumerate(answers) if ans == student_answer[i % len(student_answer)])sum(1 for ...)에서 1은 각 조건이 True일 때 더할 값이다.sum 함수는 조건에 맞는 모든 1 값을 합산하므로, 결과적으로 += 1과 같은 효과를 낸다. 2️⃣ 컴프리헤션 사용 Xdef correct(student_answer, answers): count = 0 for i, ans in enumerate(answers): if ans == student_answer[i % len(stud..

TIL 2024.11.07

[TIL] 2024년 11월 06일

파이썬리스트에 다차원 요소가 들어있을 때 sort list.sort()나 sorted()를 사용할 때는 기본적으로 각 튜플의 첫 번째 요소부터 차례대로 비교하여 정렬한다. 즉, 다차원 요소가 들어 있는 리스트에서 정렬 기준이 명시되지 않으면 튜플의 첫 번째 요소부터 비교하고, 첫 번째 요소가 동일하면 두 번째 요소, 두 번째 요소도 같으면 세 번째 요소… 이런 방식으로 순차적으로 비교하여 정렬한다.   ★ 예시 : (year, month, day, name) 형태의 리스트 # 학생 리스트가 (year, month, day, name) 형식으로 저장되어 있을 때student_list = [ (2000, 5, 21, "Alice"), (1999, 12, 15, "Bob"), (2000, 5,..

TIL 2024.11.06

[TIL] 2024년 10월 30일

파이썬list.insert() 사용 방법 기본 구문list.insert(i, x)원하는 위치 i 에 앞에 추가할 값 x 를 삽입한다. ★ 예시list = ["A", "C"]list.insert(1, "B")print(list) 출력 결과['A', 'B', 'C']list 에는 "A" 와 "C" 가 있다.list 의 1 번째 인덱스 앞에 에 "B" 를 삽입한다.기존 리스트의 1 번째 인덱스의 값은 "C" 였지만, insert() 연산을 한 결과 "B" 가 "C" 앞에 와서 이제 1 번째 인덱스는 "B"가 된 것을 볼 수 있다.  join() 사용 시 정수 리스트 사용 불가 정수 리스트에 대해 join()을 사용하려고 하면 TypeError가 발생하므로, 문자열로 변환해야 한다.result = origin[..

TIL 2024.10.30

[TIL] 2024년 10월 29일

파이썬deque.rotate()from collections import dequedeque.rotate(n)n 만큼 양방향 큐를 회전시킨다.이때 n 이 음수이면 왼쪽으로 회전시키고, 양수이면 오른쪽으로 회전시킨다. ★ rotate() 예시  1️⃣ 왼쪽으로 1만큼 회전 from collections import dequenum = [1, 2, 3, 4, 5]queue = deque(num)queue.rotate(-1)  결과2 3 4 5 1  2️⃣ 오른쪽으로 1만큼 회전from collections import dequenum = [1, 2, 3, 4, 5]queue = deque(num)queue.rotate(1) 결과5 1 2 3 4  리스트를 unpack 하고 출력하는 방법 - join() 사용..

TIL 2024.10.29

[TIL] 2024년 10월 26일

파이썬리스트를 딕셔너리로 변환하고 키 값 넣기 1️⃣ 1. 반복문 이용num_dict = dict() # 딕셔너리 생성planet_nums = ["ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN"]for i in range(10): num_dict[planet_nums[i]] = i  2️⃣ 2. zip() 함수 이용planet_nums = ["ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN"]num_dict = dict(zip(planet_nums, range(len(planet_nums))))  list to dict 결과{'ZRO': 0, 'O..

TIL 2024.10.29

[TIL] 2024년 10월 25일

파이썬1️⃣ 리스트의 행과 열을 변환하는 방법 1new_board = [list(i) for i in zip(*board)]  2️⃣ 리스트의 행과 열을 변환하는 방법 2new_board = list(map(list, zip(*board)))  ★ 예시board = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]new_board = [list(i) for i in zip(*board)]for i in new_board: print(i) 출력 결과[1, 4, 7][2, 5, 8][3, 6, 9]  zip()파이썬의 zip() 함수는 여러 이터러블(iterable)(리스트, 튜플 등)을 동시에 순회하면서, 각 이터러블의 동일한 인덱스에 있는 요소들을 튜플로 묶어..

TIL 2024.10.25

[TIL] 2024년 10월 24일

파이썬set() 중복을 허용하지 않는 변경 가능한 데이터 구조로, 수학에서의 집합과 유사한 개념을 제공한다. 순서가 없고, 각 요소는 고유해야 하며, 요소 간의 빠른 검색, 추가, 삭제를 지원한다. 예시s = "ABAB"s_set = set(s)print(s_set) 출력 결과{'A', 'B'}중복된 문자가 제거 되고 하나씩만 출력된 것을 볼 수 있다. dict()파이썬의 **딕셔너리(dictionary)**는 키-값 쌍으로 데이터를 저장하는 변경 가능한(mutable) 자료 구조이다. 딕셔너리는 해시 테이블 기반으로 구현되어 있어, 키를 통해 값을 빠르게 검색, 추가, 삭제할 수 있다. 각 키는 유일해야 하며, 값은 중복될 수 있다.  딕셔너리의 특징키-값 쌍: 데이터를 **키(key)**와 값(val..

TIL 2024.10.24

[TIL] 2024년 10월 22일

파이썬특정 문자열로 분할 후 리스트 생성sen_split = sentence.split(word)sentence를 word로 분할하여 리스트로 만든다. split() 함수는 지정한 문자열을 기준으로 문장을 나누어 리스트로 반환한다.예를 들어, sentence가 "abcabcabc"이고 word가 "abc"라면, sentence.split(word)는 ["", "", "", ""]가 된다. replace() 메서드문자열의 특정 부분을 다른 문자열로 교체하는 메서드이다. 원본 문자열을 변경하지 않고, 변경된 새로운 문자열을 반환한다. 문자열을 수정하거나 변형할 때 유용하게 사용된다. 📌 문자열은 불변 객체새로운 문자열을 반환한다는 것은, 문자열이 불변 객체이므로 원본 문자열은 변경되지 않는다는 것을 말한다..

TIL 2024.10.23

[TIL] 2024년 10월 21일

파이썬fractions 모듈 fractions 모듈은 유리수(분수)를 다루기 위한 모듈로, Fraction 클래스를 사용해 분자와 분모로 구성된 정확한 유리수를 생성하고 계산할 수 있다. 소수점의 부정확성을 피하고, 분수 간의 사칙연산 및 기약 분수 표현을 지원한다.  사용 방법from fractions import Fractionx = Fraction(1, 3) # 1/3 생성y = Fraction(2, 3) # 2/3 생성print(x + y) # 출력: 1첫 번째 인자에는 분자, 두 번째 인자에는 분모를 넣어준다.내부에서 분수를 알아서 계산하고 분수 형태로 반환한다. while문에서의 dequewhile deque:while deque: 는 덱이 비어있지 않은 동안 반복문을 실행하겠..

TIL 2024.10.21

[TIL] 2024년 10월 20일

파이썬합계 함수 sum() 리스트, 튜플, 또는 다른 iterable의 모든 요소를 더한 합계를 반환하는 함수이다. 주로 숫자들이 들어 있는 리스트나 튜플의 합계를 구할 때 사용된다. 기본 사용법numbers = [1, 2, 3, 4, 5]total = sum(numbers)print(total) # 출력: 15sum(numbers)는 리스트 numbers에 있는 요소들을 모두 더해 합계인 15를 반환 구문sum(iterable, start=0)iterable: 리스트, 튜플 등의 반복 가능한 객체start: 합계를 계산할 때 기본값으로 더해질 숫자이다. 기본값은 0이며, 지정하지 않으면 합계에 영향을 주지 않는다. start 인자를 사용하는 예시numbers = [1, 2, 3]total = sum(..

TIL 2024.10.20