알고리즘 6

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

[문제 1] 주어진 문자열 배열을 뒤집기 var reverseString = function (s) { let l = 0, r = s.length - 1; while (l None: l, r = 0, len(s)-1 while l < r: s[l], s[r] = s[r], s[l] l += 1 r -= 1 reverse() 메서드를 쓰면 간단하게 해결할 수 있지만 알고리즘으로 직접 구현하는 것도 매우 간단하다. 왼쪽과 오른쪽을 가리킬 포인터를 만든 뒤 각자의 위치에서 중간 쪽으로 하나씩..

알고리즘 2022.02.15

[이진탐색 알고리즘] with 예시 문제

이진 탐색 알고리즘은 검색 범위를 절반씩 줄여나가면서 탐색하는 알고리즘이다. 흔히 술자리에서 소주 뚜껑에 있는 숫자를 맞추는 게임을 할 때의 방식과 동일하다. 1. 25 제시. 타깃 숫자는 더 작음 => 범위를 0~25로 줄임 2. 12 제시. 타깃 숫자는 더 큼 => 범위를 13~25로 줄임 3. 19를 제시 => 정답 이렇게 숫자가 오름차순 혹은 내림차순의 일정한 순서로 정렬되어 있는 경우 이진 탐색 알고리즘을 사용하면 탐색 시간을 많이 줄일 수 있다. 이 방법을 응용한 문제 3가지를 풀어볼 것이다. [문제 1] 배열 nums에서 target숫자가 위치한 인덱스를 반환하라. (target이 nums에 존재하지 않으면 -1 반환) // JavaScript const searchIndex = (nums,..

알고리즘 2022.02.11

[Python] 리트코드 763. Partition Labels(Hash)

https://leetcode.com/problems/partition-labels/ Partition Labels - 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 문제의 첫 번째 예시에서(ababcbacadefegdehijhklij) 제일 처음 알파벳인 a를 자르려면 최소 [8]까지는 한 파트로 묶어 잘라야 나머지 파트에 a가 포함되지 않는다. 그렇게 0~8까지를 한 파트로 묶으면 그 안의 알파벳들 중 나머지 부분에 포함되는 알파벳은 하나도 없다. 그러니 이..

알고리즘 2021.12.31

[Python] 리트코드 463. Island Perimeter

https://leetcode.com/problems/island-perimeter/ Island Perimeter - 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 grid = [[0,1,0,0], [1,1,1,0], [0,1,0,0], [1,1,0,0]] 그림처럼 1은 땅을 0은 물을 뜻한다. 이때 땅의 둘레를 구하는 문제 ==풀이== 1. 땅 두 칸이 붙어 있으면 겹치는 선이 한 개일 것이다. 2. 겹치는 것 생각하지 않고 각 네모의 둘레를 모두 구했을 때..

알고리즘 2021.10.19

[Python] 리트코드 1476번 : Subrectangle Queries (Array)

https://leetcode.com/problems/subrectangle-queries/ Subrectangle Queries - 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 SubrectangleQueries, getValue, updateSubrectangle 3가지 함수를 구현하면 된다. SubrectangleQueries는 2차원 배열로 초기의 행렬 데이터를 설정한다. getValue는 2차원 배열에서 해당하는 좌표 값을 반환한다. updateSub..

알고리즘 2021.06.02

[Python] 프로그래머스 코딩테스트 연습 : 프린터

NWERC 2006 (Northwestern European Programming Contest)문제 programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr ==풀이== 딕셔너리에 문서의 인덱스와 그 문서의 우선순위를 저장한다. 우선순위의 최댓값을 구하고 나서 우선순위가 담긴 priorities배열을 하나씩 확인한다. 어떤 문서의 우선순위가 구했던 최댓값이랑 동일하면 그 문서를 출력해야 한다. 출력된 문서 개수를 1 더해주고 출력했다..

알고리즘 2021.04.30