'코딩 테스트 연습' 카테고리의 글 목록
본문 바로가기

코딩 테스트 연습70

[프로그래머스] 전화번호 목록 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해 주세요.제한사항phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다.입출력 예 입출력 예 .. 2024. 7. 17.
[프로그래머스] 프로세스 문제 설명 운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다. 1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다. 2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다. 3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다.   3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, B] 순으로 실행하게 됩니다... 2024. 7. 11.
[프로그래머스] 기능 개발 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100% 일 때 서비스에 반영할 수 있습니다.또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요.제한사항작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다.작업 진도는 100 미만의 자연수입니다.작업 속도는 100 이하의 자연수입니다... 2024. 7. 10.
[LeetCode] Valid Parentheses 문제 설명 주어진 문자열 s가 '(', ')', '{', '}', '[', ']' 문자들만 포함하고 있을 때, 이 문자열이 유효한지 판별하는 문제입니다.  유효한 문자열의 조건은 다음과 같습니다:열린 괄호는 동일한 종류의 닫힌 괄호에 의해 닫혀야 합니다.괄호는 올바른 순서로 닫혀야 합니다.각 닫힌 괄호는 해당하는 종류의 열린 괄호가 있어야 합니다.예를 들어, 문자열 "()"은 유효하며, "{}[]" 역시 유효합니다. 하지만 "{[}]"는 유효하지 않습니다.이를 위해 스택(Stack) 자료구조를 사용하여 간단히 구현할 수 있습니다. 스택을 사용하면 괄호의 열림과 닫힘을 쉽게 추적하고 유효성을 검사할 수 있습니다.입출력 예입출력 예 #1입력 : s = "()"출력 : true 입출력 예 #2입력 : s = .. 2024. 7. 2.
Linkded List 구현하기 JavaScript 문법을 사용하여 Linked List를 구현해 보았습니다.   Node 클래스는 Linked List에서 각 노드를 나타내는 객체입니다. 각 노드는 데이터를 저장하는 부분인 data와 다음 노드를 가리키는 포인터인 next로 구성되어 있습니다.class Node { constructor(data) { this.data = data; this.next = null; };};LinkedList 클래스의 constructor(생성자)입니다. LinkedList는 비연속적인 데이터 구조이기 때문에 첫 번째 Node를 가르키는 head와 LinkedList의 길이를 담는 size로 구성되어 있습니다.초기에는 LinkedList가 비어있기 때문에 head = .. 2024. 6. 27.
[LeetCode] Design Browser History 문제 설명 한 개의 탭을 가진 브라우저를 가지고 있습니다. 이 브라우저는 시작 시 홈페이지에서 시작하여 다른 URL을 방문할 수 있으며, 뒤로 이동하거나 앞으로 이동할 수 있습니다. 이를 구현하는 BrowserHistory 클래스를 만들어 보겠습니다:BrowserHistory(string homepage): 브라우저 객체를 홈페이지로 초기화합니다.void visit(string url): 현재 페이지에서 해당 URL을 방문합니다. 이 과정에서 앞으로의 이력을 모두 지웁니다.string back(int steps): 최대 steps만큼 이전 기록으로 이동합니다. 실제 이동 가능한 만큼만 이동하며, 이동 후의 현재 URL을 반환합니다.string forward(int steps): 최대 steps만큼 앞으로.. 2024. 6. 25.
[LeetCode] Single Number 문제 설명 정수 배열 nums가 주어지면 모든 요소는 하나를 제외하고 두 번 나타납니다. 그 하나를 찾아보세요. 선형적인 런타임 복잡성을 갖는 솔루션을 구현해야 하며 일정한 추가 공간만 사용해야 합니다.제한사항입출력 예입출력 예 #1입력 : nums = [2, 2, 1]출력 : 1 입출력 예 #2입력 : nums = [4, 1, 2, 1, 2]출력 : 4 입출력 예 #3입력 : nums = [1]출력 : 1문제풀이/** * @param {number[]} nums * @return {number} */var singleNumber = function (nums) { let result = []; nums.forEach((num) => { if (!result.includes(num.. 2024. 6. 20.
[LeetCode] Two Sum 문제 설명정수 배열 nums와 정수 target이 주어지면 두 숫자의 합이 target이 되는 index를 찾아 반환합니다.제한사항입출력 예입출력 예 #1입력 : nums = [2, 7, 11, 15], target = 9출력 : [0, 1]설명 : nums[0] + nums[1] == 9이므로 [0, 1]을 반환합니다. 입출력 예 #2입력 : nums = [3, 2, 4], target = 6출력 : [1, 2] 입출력 예 #3입력 : nums = [3, 3], target = 6출력 : [0, 1]문제풀이/** * @param {number[]} nums * @param {number} target * @return {number[]} */var twoSum = function(nums, target.. 2024. 6. 18.
[프로그래머스] 숫자의 표현 문제 설명 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현하는 방법이 여러 개라는 사실을 알게 되었습니다. 예를 들어 15는 다음과 같이 4가지로 표현할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해 주세요. 제한사항 n은 10,000 이하의 자연수입니다. 입출력 예 n result 15 4 입출력 예 설명 입출력 예 #1 문제의 예시와 같습니다. 문제풀이 첫 번째 시도 이중 for문을 사용하여 조건에 부합하는 경우의 수를 계산하는 코드인 데, 효율성면에서 .. 2023. 10. 6.
728x90