코딩테스트 13

[Two Pointer #1] 대표 문제 + 풀이

[문제 1] 오름차순 정렬된 nums배열의 모든 요소를 제곱한 값을 정렬된 배열로 반환하라. (ex. nums = [-4,-1,0,3,10] 일 때 정답은 [0,1,9,16,100] 이다.) var sortedSquares = function(nums) { let left = 0; let right = nums.length-1; const answer = [] while(left Math.abs(nums[right])){ answer.push(Math.pow(nums[left], 2)); left ++ }else{ answer.push(Math.pow(nums[right], 2)); right -- } } return answer.reverse() }; class Solution: def sortedSq..

알고리즘 2022.02.13

[Python] 리트코드 583. Delete Operation for Two Strings

https://leetcode.com/problems/delete-operation-for-two-strings/ Delete Operation for Two Strings - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 먼저 word1이랑 word2에서 공통된 알파벳들을 알아낸다. 공통되지 않은 알파벳들은 조작되어야 하는 알파벳이므로 word1과 word2의 각 length를 비교해 그 차이만큼 답으로 리턴한다. 공통된 알파벳을 가려내는데 고려해야 하는 사항..

알고리즘 2021.12.02

[Python] 리트코드 309. Best Time to Buy and Sell Stock with Cooldown

https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/ Best Time to Buy and Sell Stock with Cooldown - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 이 문제는 [121. Best Time to Buy and Sell Stock] 이랑 [122. Best Time to Buy and Sell Stock II] 의 다음 단계라고 할 수 있다. 이..

알고리즘 2021.10.27

[Python] 리트코드 1014. Best Sightseeing Pair

https://leetcode.com/problems/best-sightseeing-pair/ Best Sightseeing Pair - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com values[i] + values[j] + i - j 를 계산했을 때 최댓값을 구하는 문제이다. values[i] + values[j] + i - j 값이 최대가 되려면 values[i] + i는 최대가 되어야 하고 values[j] - j도 최대가 되어야 한다. values의 임..

알고리즘 2021.10.26

[Python] 리트코드 39. Combination Sum (Array)

https://leetcode.com/problems/combination-sum/ Combination Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com ==문제== candidates로 후보 숫자들이 주어지고 target 숫자가 주어진다. candidates에서 target숫자를 만들 수 있는 조합을 구하는 문제이다. ==설명== 후보 숫자를 선택하면 만들어야 하는 목표 숫자에서 그 수를 빼준다. 남은 숫자가 0보다 크다면 아직 타깃에 도달하지 못한 ..

알고리즘 2021.07.12

[Python] 리트코드 1106 : Parsing A Boolean Expression (String)

https://leetcode.com/problems/parsing-a-boolean-expression/ Parsing A Boolean Expression - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com ==문제== "!(f)" 같은 형태로 문자열이 주어졌을 때 그 연산자에 따라 NOT, AND, OR 연산을 한 결과를 반환하면 된다. ==풀이== 먼저 NOT, AND, OR 연산을 할 함수를 각각 만든다. 그리고 함수에 어떤 값을 전달해줄지 정해야 하는데..

알고리즘 2021.07.10

[Python] 리트코드 1402 : Reducing Dishes (DP)

https://leetcode.com/problems/reducing-dishes/ Reducing Dishes - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com ==문제== 셰프가 가지고 있는 접시 별로 손님들이 느끼는 만족도가 저장된 리스트 satisfaction이 있다. 이 접시들 중 어떤 걸 사용할지 정할 건데 접시가 배치된 순서에 따라 총만족도가 결정된다. 뒤에 위치한 접시일수록 높은 계수를 부여받아 높은 만족도를 달성할 수 있다. 예를 들어 만족도가 ..

알고리즘 2021.06.18

[Python] 리트코드 877 : Stone Game (DP)

https://leetcode.com/problems/stone-game/submissions/ Stone Game - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 짝수개의 돌무더기가 있을 때 Alex와 Lee가 한 무더기씩 번갈아가면서 가져갈 것이다. 양쪽 끝에 있는 돌무더기만 가져갈 수 있을 때 Alex가 이길 수 있으면 True를 반환한다. piles의 첫 번째를 piles[i]라고 하고 끝을 piles[j]라고 할 때 piles[i, i+1, i+2, ..

알고리즘 2021.06.16

[Python] 리트코드 1470 : Shuffle the Array (Array)

https://leetcode.com/problems/shuffle-the-array/ Shuffle the Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 주어진 nums배열에서 0부터 n씩 건너뛰면서 숫자를 골라 새로운 배열을 만들어내면 된다. nums=[0,1,2,3,4,5], n=3이라면 nums[0]인 0이 새 배열의 첫 번째가 되고 3칸 뒤인 3이 두 번째가 된다. 3의 3칸 뒤는 배열을 한 바퀴 돌아서 0이 되야하는데 0은 이미 새 배열..

알고리즘 2021.06.08

[Python] 프로그래머스 문제 : 전화번호 목록

NCPC(Nordic Collegiate Programming Contest)문제 programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 리스트의 요소 중 한 가지가 다른 리스트들 요소의 접두어인 경우가 있다면 false를 반환하는 해시 알고리즘 문제이다. 처음에는 이중 반복문을 사용해서 리스트의 [i+1]을 [i]의 길이만큼 슬라이싱 해서 두 가지가 동일하다면 접두어로 판단하여 false를 리턴하는 방식을 사용했다. def ..

알고리즘 2021.05.15