본문 바로가기
반응형

Software Development/Leetcode33

파이썬 인터뷰 준비 필수 함수 모음 오늘은 파이썬으로 코딩 문제 푸실 때에 꼭 알아야 할 함수들에 대해 살펴보겠습니다. 파이썬에서 제공하는 여러 가지 유용한 필수 함수들을 배워보는 시간을 가져봅시다! 릿코드, 해커랭크, 백준, 프로그래머스 등 수많은 알고리즘 사이트들에 등장하는 문제를 풀 때에 필수적으로 알아야 하는 함수들입니다. 스트링, 리스트 함수 split 함수 split 함수는 문자열을 나누어 주는 함수입니다. 대표적으로 인자를 없이 사용하는 경우와, 인자를 하나 넣는 경우(",")를 넣는 경우로 살펴보겠습니다. 두 경우가 가장 많이 쓰이기 때문에 이것만 알아두셔도 정말 도움이 많이 될 것입니다. s = "hello world" print(s.split()) # ['hello', 'world'] s = "Hello world,Py.. 2023. 5. 1.
릿코드 62 - Unique Paths 안녕하세요! 오늘은 릿코드 62번 문제 Unique Paths를 파이썬을 이용해서 풀어보겠습니다. 이번 문제는 다이나믹 프로그래밍을 이해할 수 있는 아주 좋은 문제라고 할 수 있습니다. 다이나믹 프로그래밍이란 문제를 접근할 때에 세부적인 작은 문제로 쪼개어 한단계식 더 큰 문제를 풀어나가는 방식인데요. 먼저 문제부터 살펴보겠습니다. 문제설명 아래처럼 Start 포지션에서 Finish 포지션까지의 유니크한 경로의 갯수를 구하는 문제입니다. 로봇은 오른쪽 또는 아래쪽으로만 이동이 가능합니다. 이번 문제는 접근을 어떻게 해야 할까요? 예시 1에 주어진 2차 그리드는 3 * 7 입니다. 먼저 피니쉬 스팟의 바로 왼쪽 또는 위쪽에서 피니쉬 스팟까지 가는 방법을 생각해봅시다. 방법은 하나지요? 그렇다면 대각선 위쪽.. 2023. 3. 22.
릿코드 39번 Combination Sum 안녕하세요! 오늘은 릿코드 39번입니다! 파이썬으로 시원하게 한번 풀어볼까요? :) 문제설명 Input: candidates = [2,3,6,7], target = 7 Output: [[2,2,3],[7]] Explanation: 2 and 3 are candidates, and 2 + 2 + 3 = 7. Note that 2 can be used multiple times. 7 is a candidate, and 7 = 7. These are the only two combinations. 이미 문제를 알고 있기 때문에 이번 포스팅을 보시겠죠? 설명을 더 하자면 일단 구현해야 하는 함수중 첫 번째 인자로 들어오게 되는 candidates 리스트를 반복을 해도 되는 방식으로 조합을 해서 합이 target.. 2023. 2. 27.
릿코드 208번 Implement Trie (Prefix Tree) 안녕하세요! 오늘은 릿코드 208 문제 프리픽스 트리를 만드는 문제입니다. 파이썬을 이용해서 풀어보도록 하겠습니다. 프리픽스 트리란? 프리픽스 트리는 트리의 한 종류입니다. 여태 다뤘던 트리는 이진트리였는데 이번 트리는 left, right처럼 양쪽으로만 가지를 치는 트리 구조가 아니고, 알파벳의 개수만큼 가지를 치는 트리 구조입니다. 구글에서 검색을 하실 때, 단어를 하나하나 입력할 때마다 입력창 아래에 suggestion words들이 나오죠? 이것은 구글에 해당 단어가 입력이 될 때에 그 단어가 프리픽스 트리에 있는 단어인지를 판별하고 데이터베이스의 우선순위에 따라 우리에게 추천단어를 입력해 주는 것입니다. 문제설명 이렇게 Trie클래스를 만들고 해당 클래스에 insert, search, start.. 2023. 2. 22.
릿코드 105번 Construct Binary Tree from Preorder and Inorder Traversal 안녕하세요! 오늘은 릿코드 105 Preorder, Inorder 리스트가 주어졌을 때에 이진트리를 만드는 방법입니다. 프리오더와 인오더 두개만 있으면 언제나 이진트리를 만들 수 있다는 사실이 신기하지 않나요? 릿코드 문제를 살펴보겠습니다. Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7] Output: [3,9,20,null,null,15,7] 문제설명 말 그대로 프리오더, 인오더 리스트가 들어왔을 때에 이진트리를 만드는 함수를 구현하는 것입니다. 프리오더, 즉 전위순회와 인오더, 즉 중위순회는 이진트리를 탐색하는 방법인데요. 문제를 풀기전에 혹시 개념이 부족하다면 전위순회와 중위순회에 대해 잘 살펴보시고 문제를 풀어주세요. 문제를 잘 살펴보면 처음 .. 2023. 2. 21.
릿코드 230 Kth Smallest Element in a BST 안녕하세요! 오늘은 릿코드 230번 문제인 바이너리서치트리(이진탐색트리)에서 K번째로 작은 노드값을 구하는 문제입니다. 이번문제는 제 블로그의 다른 릿코드 트리문제 풀이법에 많이 쓰였던 재귀함수를 이용한 방법 말고 스택을 이용해서 풀어보았습니다. 파이썬을 이용해서 문제를 풀겠습니다. 문제설명 다음과 같은 이진탐색트리가 있다고 합니다. 여기서 k = 1이 들어올때 1을 리턴해줍니다. Input: root = [3,1,4,null,2], k = 1 Output: 1 k = 2이면 2를 리턴해줍니다. 트리에서 가장 작은값을 리턴해주는 문제입니다. 바로 풀어보겠습니다. 문제풀이 재귀가 아닌 반복(iterative)을 이용해서 while루프로 풀어보겠습니다. Iterative 이용 풀이 먼저 코드를 살펴보겠습니다.. 2023. 2. 19.
반응형