본문 바로가기

반응형

파이썬

(13)
Hash Hash란?어떤 **입력값(key)**을 받아서, 고정된 크기의 **출력값(hash value)**으로 변환하는 함수 또는 구조. person = { "name": "Alice", "age": 25} "name"이라는 key를 해시함수로 변환 → 어떤 메모리 위치로 매핑거기서 바로 "Alice"를 가져옴 → 검색이 빠름 (O(1) 시간) 주요 개념해시 함수데이터를 특정한 고정 길이의 값으로 바꿔주는 함수해시 값(hash value)해시 함수의 출력값해시 충돌서로 다른 입력값이 같은 해시값을 가질 때 충돌 발생충돌 처리같은 해시값이 나올 때 어떻게 처리할지해시 테이블(key, value)쌍을 저장하고 검색하는 자료구조검색/삽입 속도평균 O(1) 시간 복잡도 해시의 사용파이썬 딕셔너리(dict..
pandas.errors.invalidindexerror: reindexing only valid with uniquely valued index objects 문제 해결 방법 pandas.errors.invalidindexerror: reindexing only valid with uniquely valued index objects 문제 해결 방법 두 데이터프레임을 concat으로 합칠 때 pandas.errors.invalidindexerror: reindexing only valid with uniquely valued index objects라는 오류가 발생했다. 검색해보면 다들 reset_index()쓰라고 하는데 이것도 안돼서 몇시간 까먹었다ㅜㅜ 결국 지피티님의 도움을 받아 해결했는데 결국 중요한 건 데이터 자체인거같다,,, 해결법 1. 중복된 인덱스 확인 # df_pred와 df_pred_else duplicated_indexes_pred = df_pred.ind..
[1181 | python] 단어 정렬 [1181 | python] 단어 정렬 🎉조건 알파벳 소문자로 이루어진 N개의 단어가 들어오면 정렬하는 프로그램을 작성하기 1. 길이가 짧은 단어 우선 2. 길이가 같은 경우 사전 순으로(abc...) 단 중복된 단어는 제거 🎉접근방식 먼저 N만큼 단어를 입력받고 리스트에 저장 set을 통해 중복 제거 길이에 따라 정렬. 이때 길이가 같은 경우 알파벳순으로 정렬 정리한 리스트 리턴 🎉 Solution # 1181 N = int(input()) word_list = [] for _ in range(N): word = input() word_list.append(word) word_list = list(set(word_list)) #1 word_list.sort() #2 word_list.sort(key=l..
[1259 | Python] 팰린드롬수 [1259 | Python] 팰린드롬수 🎉문제 총평 흑흑 쉬운데 어려워 일주일 쉬었더니 뇌가 굳은것같다 더 정진할것 🎉조건 앞부터 읽어도, 뒤부터 읽어도 똑같은 숫자를 팰린드롬수라고 한다. 여러개의 숫자 입력시 각 수가 팰린드롬수인지 판단하자. 팰린드롬수인 경우 yes를, 아닌 경우 no를 출력하라. 🎉접근방식 처음에 인덱싱을 사용하려다가 실패해서 reverse 함수로 접근. reverse 함수만 사용하면 쉽게 뒤집을 수 있다고 생각했는데 reverse를 사용하니 str이나 int가 아니라 reverse 형태였다. 그래서 추가적으로 list()랑 join을 사용해야 했다. 🎉try1: 틀렸습니다! # 1259 num1 = input() num_list = list(reversed(num1)) # num1..
[2566 | Python] 최댓값 🎉문제 총평 ez~ 옛날이었으면 이정도에도 어버버 했을텐데! 그래도 성장하긴 했던거구나 나자신...기특해... 🎉조건 🎉접근방식 for문을 사용해서 9*9 행렬을 제작한다 for문에서 각각의 요소들의 최댓값을 비교한다? 🎉try1: solved!😍 # 2566 lst = [] max_value = 0 # 행마다 입력하고 각 행의 최댓값을 찾음 for i in range(9): new_list = list(map(int, input().split())) new_max = max(new_list) # 기존의 최댓값보다 새로운 행의 최댓값이 더 큰 값일경우 값을 변경 if max_value
배열(array)과 파이썬 그래프 배열(array)과 그래프 리스트와 배열의 차이 list array 서로 다른 자료형 함께 저장 가능 동일 자료형만 저장 가능 slow.why? 내부적으로 포인터 사용해 데이터 참조 fast. why? 데이터에 직접 접근 가능 파이썬 내장 자료형 사용해서 모듈 필요 없음 파이썬 표준 모듈 array 사용 따라서 리스트는 다양한 자료형을 저장할 때, 형태가 유동적일 때 유용. 배열은 동일 자료형 데이터를 처리할 때, 빠른 처리 속도가 필요할 때 사용 # 배열과 리스트 ## 배열 import array as arr myarray = arr.array('i', [1,2,3]) # i: int, f: float, d:double, string은 지원 안함 myarray.insert(1,5) myarray.app..
파이썬 더 잘 알기 파이썬 더 잘 알기 부동소수점 vs 고정소수점 컴퓨터에서 소수는 2진법으로 정확히 표현할 수 없으므로 근사치로 저장된다. 소수를 저장하기 위한 방법은 2가지가 있다. 고정 소수점 정수를 표현하는 비트 수, 소수를 표현하는 비트 수를 미리 정해두고 해당 비트만큼 사용해 숫자 표현 ex: 정수 표현에 4byte(32bit), 부호 1bit, 소수는 15bit 사용하자 정수를 표현하는 비트를 늘리면 큰 숫자를 표할 수 있지만 정밀한 숫자표현 어렵 소수 표현 비트 늘리면 정밀하게 표현 가능하지만 큰 숫자는 표현이 어렵 부동 소수점 소수점의 위치를 고정하지 않고 그 위치를 나타내는 수를 따로 적는것. 유효숫자를 나타내는 가수와 소수점의 위치를 풀이하는 지수로 나누어 표현 IEEE754의 표현을 가장 널리 사용 예..
[자료구조] Backtracking 기법 [자료구조] Backtracking 기법 DFS와는 다르게 탐색중인 경로에 답이 없다고 판단시 탐색시작 노드의 부모로 되돌아가 다른 방향으로 탐색하는 기법 해당 경로에 답이 있을 것 같은 경우 "유망하다"라고 말한다 DFS 탐색에서 유망한 조건만을 만족하는 방향만을 살펴보는 방식 def dfs(): if promising(x): dfs() def promising(x): if 유망한경우 : return True return False 예제1. 백준 9663 백트래킹 이용 DFS를 수행하면서, 유망하지 않은 경로면 빽 출처 [Algorithm] 백트래킹(Backtracking): 안될 싹은 미리미리 가지치기 DFS 탐색 중 가능성이 없는 방향은 가지 않는 '백트래킹' 기법에 대해서 알아보겠습니다. [ Co..

반응형