Algorithm(45)
-
[leetCode][알고리즘] 35. Search Insert Position
문제 설명 LeetCode 35. Search Insert Position 찾는 대상이 있다면 해당 index를 리턴하고, 없다면 순서 상 들어갈 곳의 index를 리턴하세요. 알고리즘 복잡도는 O(log n)이어야 합니다. 제한사항 1
2022.01.04 -
[leetCode][알고리즘] 278. First Bad Version
문제 설명 LeetCode 278. First Bad Version PM이 되어 첫 Bad Version을 찾아라. 불량 이후에 출시된 버전들은 모두 Bad로 체크된다. 버전의 개수와 Bad Version임을 알려주는 API(함수)가 주어질 때, 최초 Bad Version 인덱스를 출력하라. 제한사항 1 true Then 4 is the first bad version. Input: n = 1, bad = 1 Output: 1 문제 풀이 이진탐색으로 찾으면 된다. (BinarySearch) 응용해서 우리는 isBadVersion(version) 기준으로 체크하면 된다. 문제의 배열은 1부터 시작하나, 우리는 0부터 체크하는 것만 유의하자. left = 0, right = n-1 시작, 중간지점(i)설정 ..
2022.01.04 -
[Programmers 알고리즘][86971] 9주차_전력망을 둘로 나누기
문제 설명 Programmers Weekly Challenge 9 week 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어지며, n개의 송전탑이 하나의 트리 형태로 연결되어 있습니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 2 이상 100 이하인 자연수입니다. wires는 길이가 n-1인 정수형 2차원 배열입니다. wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며, 이는 전력망의 v1번 송전탑과 v2번 송전탑이 전선으로 연결되어 있다는 것을 의미합니다. 1 ≤ v1 < v2 ≤ n 입니다. 전력..
2021.10.18 -
[Programmers 알고리즘][42889] 실패율
문제 설명 level 1 2019 KAKAO BLIND RECRUITMENT 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 return 하도록 solution 함수를 완성하라. 실패율: 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 제한사항 스테이지의 개수 N은 1 이상 500 이하의 자연수이다. stages의 길이는 1 이상 200,000 이하이다. stages에는 1 이상 N + 1 이하의 자연수가 담겨있다. 각 자연수는 사용자가 현재 도전 중인 스테이지의 번호를 나타낸다. 단, N + 1 은 마지막..
2021.05.03 -
[Programmers 알고리즘][77484] 로또의 최고 순위와 최저 순위
문제 설명 level 1 2021 Dev-Matching: 웹 백엔드 개발자(상반기) 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어집니다. 이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성해주세요. 알아볼 수 없는 번호를 0으로 표기합니다. 순서와 상관없이, 구매한 로또에 당첨 번호와 일치하는 번호가 있으면 맞힌 걸로 인정됩니다. 순위당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 제한사항 lottos는 길이 6인 정수 배열입니다. lottos의 모든 원소는 0 이상 45 이하인 정수입니다. ..
2021.05.01 -
[Programmers 알고리즘][연습문제] 시저 암호 / [JavaScript] replace
문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 제한 조건 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000이하입니다. n은 1 이상, 25이하인 자연수입니다. 입출력 예 s n result "AB" 1 "BC" "z" 1 "a" "a B z" 4 "e F d" 문제풀이 처음에 풀었던 코드 1. split : 문자열의 문자들을 하나씩 조회하기 위해 분리 2. m..
2020.03.16