본문 바로가기

전체 글

(145)
Search in Rotated Sorted Array | LeetCode 804 | Python3 🐍 📄 목차 🤔 문제 : Search in Rotated Sorted Array | LeetCode 804 문제: https://leetcode.com/explore/interview/card/top-interview-questions-medium/110/sorting-and-searching/804/ 정렬된 배열에서 타겟 숫자의 인덱스를 찾는 문제입니다. 단, 여기서 배열은 rotated 되어있습니다. 예를들어, [0,1,2,4,5,6,7] 배열을 오른쪽으로 4칸 옮겨 [4,5,6,7,0,1,2] 를 만드는 식입니다. 💡 풀이 1. Rotate 된 시작점을 찾은 후 한쪽 범위에서 BS 가장 먼저 떠올린 풀이는 어느부분부터 Rotate된 것인지, pivot을 찾자는 거였습니다. nums = [4,5,6,7,..
[AWS] AWS CDK 시작하기 (1) | Javascript, AWS Configure, CDK Init, CDK deploy, lambda, api gateway 📄 목차 1. AWS & CDK 설정 AWS Configure 기존에 aws configure를 통해 AWS와 로컬이 연결되어 있다면 건너뛰어도 됩니다. aws configure list AWS의 IAM에서 키페어(AWS Access Key, AWS Secret Access Key) 발급 참고) 키페어 발급 https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds terminal에서 aws configure 커맨드를 통해 aws 계정 연결 $ aws configure AWS Access Key ID: [aws 에서 IAM생성하여 입력] AWS Secret ..
Coin Change | LeetCode 809 | Python3 🐍 📄 목차 🤔 문제 : Coin Change | LeetCode 780 문제: https://leetcode.com/explore/interview/card/top-interview-questions-medium/111/dynamic-programming/809/ 동전을 조합하여 가장 적은 동전 조합으로 주어진 금액을 만드는 문제입니다. 전형적인 Dynamic Programming 문제네요. Dynamic Programming 1. 큰 문제는 작은 문제로 나누어 푼다 2. 작은문제에서 푼 정답은 기억해두었다가 동일한 문제가 나오면 그대로 활용한다. 💡 풀이 1. Top Down amount에서 동전만큼씩 깎아내려가는 방식입니다. dp()라는 함수를 recursive하게 호출하게 됩니다. from typin..
Merge Intervals | LeetCode 803 | Python3 🐍 📄 목차 🤔 문제 : Merge Intervals | LeetCode 803 문제: https://leetcode.com/explore/interview/card/top-interview-questions-medium/110/sorting-and-searching/803/ 배열로 주어진 범위(interval)들을 합치는 문제입니다. 예를들어 [1,3], [2,4]가 들어오면 -> [1,4] 로 합쳐집니다. 💡 풀이 접근 : interval이 겹치는 종류 일단 interval끼리 어떤 방식으로 겹칠 수 있을지 생각해보았습니다. 1. left overlapping : 새로 들어오는 interval의 왼쪽 범위가 기존에 있던 범위의 오른쪽에 겹쳐서 들어감 ex) 기존 : [1, 3] 신규: [2, 4] -> ..
Search for a Range | LeetCode 802 | Python3 🐍 📄 목차 🤔 문제 : Longest Palindromic Substring | LeetCode 802 문제: https://leetcode.com/explore/interview/card/top-interview-questions-medium/110/sorting-and-searching/802/ 정렬된 배열에서 타겟이값이 나오는 구간을 찾는 문제입니다. time complexity 를 O(logN)으로 하라는 단서가 있습니다. 💡 풀이 1. Binary Search 시작점, 끝점을 찾는 binary search를 두번 수행하는 방식으로 코드를 작성했습니다. class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]: ..
Vue 시작하기 (4) | Github actions + S3로 배포 자동화 📄 목차 1. Amazon IAM 생성 1. 사용자 이름, 자격증명 유형 선택 2. 권한 설정 나머지는 다음 다음 눌러서 넘겨주시면 됩니다. 사용자 추가가 완료되면 키가 포함된 csv를 다운로드 할 수 있습니다. 2. github secrets 세팅 깃헙 프로젝트를 새로 생성하여 작업한 vue 프로젝트를 업로드 합니다. Settings탭 > secrets > actions > New repository secret 아까 S3에서 생성한 key id와 secret을 각각 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY 이름으로 등록합니다. 3. github workflows정의 프로젝트의 루트 디렉토리에 .github/workflows 폴더를 만들고 하위에 deploy.yml 파일..
Vue 시작하기 (3)| 프로젝트 빌드, S3로 배포 📄 목차 Vue 프로젝트는 Amazon S3를 활용해서 간단하게 무료로 배포할 수 있습니다. 이번 글에서는 Amazon S3 를 통한 프로젝트 배포 방법을 설명하겠습니다. 1. S3 버킷 만들기 S3에서 배포를 위한 새로운 버킷을 만들어줍니다. 여기에 vue를 빌드한 정적 파일을 업로드하여 호스팅을 할 예정입니다. 2. 버킷의 퍼블릭 접근 허용 버킷 > 권한 탭에 가서 버킷 정책을 public read 허용으로 편집해줍니다. { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicRead", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Re..
Sort Colors | LeetCode 798 | Python3 🐍 📄 목차 🤔 문제 : Longest Palindromic Substring | LeetCode 780 문제: https://leetcode.com/explore/interview/card/top-interview-questions-medium/110/sorting-and-searching/798/ 주어진 배열을 정렬하는 문제입니다. 단, 이 문제에서 배열의 값은 0,1,2중 하나입니다. quick sort를 활용한다면 O(NlogN) 이 걸리겠지만, 배열의 값이 정해져있다는 점을 활용하여 더 빠르게 풀 수 있습니다. 💡 풀이 1. hashMap활용, 0,1,2의 갯수 count 배열에서 나오는 값을 이미 알고 있기 때문에, 이를 활용해봅니다. nums를 읽으며 0,1,2의 갯수를 저장하고, 한번 더 순회..