파이썬

·개인공부
들어가기 전 Pydantic은 Python 영역에서 사용하는 타입 힌트와 데이터 검증을 보다 쉽고 명확하게 해주는 라이브러리이다. 누군가는 이러한 "타입을 강제하는 Pydantic이 Python을 Python스럽지 못하게 사용하는 것"이라 이야기하기도한다. 하지만 타입을 강제하는 것은 Python의 철학와는 별개로 서비스 운영측면에서 중요한 요소이다.타입힌팅은 코드의 명확성을 높여주며, 개발자의 개발 생산성과 밀접한 연관이 있는 IDE의 자동완성 기능와 결합되어 높은 개발 생산성을 이끌어 낼 수 있다.데이터 구조가 명확해짐으로써 다른 서비스팀와의 협업과 유지보수가 더욱 더 편리해진다. Pydantic은 타입을 강제하는 것 뿐만아니라, 커스텀 유효성 검사와 데이터 직렬화(serialization) 및 역직..
하노이 탑은 재귀로 풀어야한다고 들어보기만 하였다. 재귀는 아직 연습이 부족한지, 생각만 해도 머리가 지끈거린다... 현재의 내 머리로는 잘 이해가 가지 않아 유튜브 영상을 보고 이해 한 뒤, 코드를 작성했다. 참고한 유튜브 영상, 이해하는데 많은 도움이 됬다. 재귀함수에서는 종료 조건이 필수적이기에, n == 1일 때 answer에 값을 더해줌으로써 재귀를 멈추었다. def solution(n): answer = [] def hanoi(n, start, end, mid): nonlocal answer if n == 1: answer.append([start, end]) else: hanoi(n-1, start, mid, end) answer.append([start, end]) hanoi(n-1, mi..
이 문제는 보고나서 문득 DP를 사용해야겠다!와 피보나치 수열하고 똑같은거 아닌가? 하는 생각이 들었다. 그래서 피보나치로 만들어서 풀었는데 풀이가 통과됬다. 1부터 n 까지 숫자를 각 경우의 수라고 생각하면, 결국에는 이전 경우의 수에서 더해져서 만들어지는 것이였다. (코딩문제를 직감으로 풀면 안될 것같은데 직감이 들어간다.. ) def solution(n): if n == 1: return 1 a, b = 1, 2 for i in range(2, n): a, b = b, a + b return b % 1234567 코딩테스트 연습 - 멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸)..
숫자 게임 문제는 정렬과 기준(A)을 통해 문제를 해결 할 수 있었다. 나는 값을 지울 때, pop을 사용하면 더 빠를 줄 알고 아래의 방법으로 했는데, 매번 len(B)을 구하는 것 때문인지 remove 하는 방법보다 조금 느렸다.. # pop() 사용 def solution(A, B): answer = 0 A.sort() B.sort() n = len(A) for i in range(n): for j in range(len(B)): if A[i] < B[j]: B.pop(j) answer += 1 break return answer # remove 사용 def solution(A, B): answer = 0 A.sort() B.sort() for a in A: for b in B: if a < b: ..
나는 이게 팰린드롬인지 확인하는 함수를 만들고, 이를 전체 확인하여, 갯수를 확인해보려고 하였다. # 초기 코드 def check(text): temp = [] mid = len(text) // 2 if len(text) % 2 == 0: for i in range(len(text)): if i = mid: if temp[-1] == text[i]: temp.pop() return True if not temp else False else: for i in range(len(text)): if i mid: if temp[-1] == text[i]: temp.pop() retu..
DFS/BFS 유형문제로 나는 BFS를 사용하여 풀어보았다. BFS구현을 위해 deque를 사용하였다. 처음에는 입출력이 이해가 되질 않았다. 왜 "dot"을 거치는지 이해가 되질 않았는데 (사실 아직도 이해되지않는다..) 다른 블로그들을 참고하여, 문제를 풀기위한 방법으로 이해한 것은 한 번에 "한 개의 알파벳만 바꿀 수 있다" = "한개씩만 바꿀 수 있는경우 바꿔야한다." 라고 이해했다. 그리고 이 조건은 check 함수를 만들어서 조건으로 확인하였다. queue에 들어가는 값은 단어와 변환횟수(cnt)를 담았고, 결국 target과 start가 일치 할 때, 현재 cnt에 + 1 을 반환하였다. from collections import deque def check(word, target): cnt..
KEEMSY
'파이썬' 태그의 글 목록