본문 바로가기
728x90
반응형

전체 글242

[프로그래머스] level 4 가사 검색(자바스크립트) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨‍💻 문제 정답 코드 답안 1(Map 활용) 답안 2 문제 풀이 트라이(trie) 자료 구조를 활용하여 풀 수 있는 문제이다. 트라이는 '문자열을 찾거나 일치 여부를 판별하는 데' 유용한 자료 구조이다. 트라이는 중첩된 객체 구조로 되어 있다. 트라이의 삽입 메서드를 실행하면 문자열을 순회하며 탐색하는 문자가 root에 존재하지 않을 시 해당 문자를 key로 갖는 객체를 생성한다. 이러한 객체가 줄줄이 달려 트리를 형성하는 것이다. 'kang'과 'kim'이라는 문자열을 입력했을 시 아래와 같은 트라이 자료.. 2023. 1. 30.
[자료 구조] 트라이(Trie) 🤔 트라이란? => 주로 문자열을 검색하거나 저장된 문자열과 특정 문자열이 일치하는지 판별하는 데 쓰이는 특수한 트리이다. ⇒ 위 그림은 Sammie, Simran, Sia, Sam이라는 문자열을 저장한 트리이다. 각 노드는 분기되어 완전한 단어를 이룬다. 또한 각 노드는 경로의 끝을 나타내는 isCompleted이라는 boolean flag를 갖는다. 예를 들어 Sam이라는 문자열의 m은 endOfWord를 true로 만들어 해당 문자열의 끝임을 나타낸다. 노드 생성 ⇒ 트라이 노드는 자식을 저장하는 중첩된 객체를 사용하여 형성된다. 각 객체는 자신의 자식을 키로 삼는다. Trie 클래스는 위에서 보듯 TrieNode 클래스의 생성자에 의해 발현되는 root 노드를 갖는다. 삽입 ⇒ 문자열을 트라이에 .. 2023. 1. 30.
[Baekjoon] 2110 공유기 설치(자바스크립트/NodeJs) 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 👨‍💻 문제 도현이의 집 N개가 수직선 위에 있다. 각각의 집의 좌표는 x1, ..., xN이고, 집 여러개가 같은 좌표를 가지는 일은 없다. 도현이는 언제 어디서나 와이파이를 즐기기 위해서 집에 공유기 C개를 설치하려고 한다. 최대한 많은 곳에서 와이파이를 사용하려고 하기 때문에, 한 집에는 공유기를 하나만 설치할 수 있고, 가장 인접한 두 공유기 사이의 거리를 가능한 크게 하여 설치하려고 한다. C개의 공유기를 N개의 집에 적당히 설치해서, 가.. 2023. 1. 30.
[이코테] 이진 탐색_고정점 찾기(자바스크립트) 이번 글은 '이것이 취업을 위한 코딩테스트다' 내의 문제를 풀고 정답 코드를 정리한 것입니다. 이것이 취업을 위한 코딩 테스트다 with 파이썬 | 나동빈 - 교보문고 이것이 취업을 위한 코딩 테스트다 with 파이썬 | IT 취준생이라면 누구나 입사하고 싶은 카카오ㆍ삼성전자ㆍ네이버ㆍ라인! 취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생이라면 누구나 product.kyobobook.co.kr 👨‍💻 문제 정답 코드 문제 풀이 문제에서 요구하는 시간 복잡도는 O(logN)이므로 선형 탐색으로는 풀 수 없다. 이미 정렬된 배열이 주어지므로 이진 탐색을 통해 해결할 수 있다. 찾고자 하는 값과 중간점(mid)이 동일하다 가정하고 탐색을 수행한다. 탐색을 수행하다 중간점에 있는 값(arr[mid])보다 .. 2023. 1. 29.
[이코테] 이진 탐색_정렬된 배열에서 특정 수의 개수 구하기(자바스크립트) 이번 글은 '이것이 취업을 위한 코딩테스트다' 내의 문제를 풀고 정답 코드를 정리한 것입니다. 이것이 취업을 위한 코딩 테스트다 with 파이썬 | 나동빈 - 교보문고 이것이 취업을 위한 코딩 테스트다 with 파이썬 | IT 취준생이라면 누구나 입사하고 싶은 카카오ㆍ삼성전자ㆍ네이버ㆍ라인! 취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생이라면 누구나 product.kyobobook.co.kr 👨‍💻 문제 정답 코드 문제 풀이 문제에서 요구하는 시간 복잡도는 O(logN)이므로 선형 탐색으로 문제를 해결할 수 없다. 따라서 이진 탐색을 통해 문제를 풀어야 한다. 배열은 정렬된 채로 주어지기 때문에 수열 내에 x가 존재한다면 연속해서 나열되어 있음을 예상할 수 있다. 따라서 x가 처음 등장하는 인덱스.. 2023. 1. 29.
[이코테] 이진 탐색_떡볶이 떡 만들기(자바스크립트) 이번 글은 '이것이 취업을 위한 코딩테스트다' 내의 문제를 풀고 정답 코드를 정리한 것입니다. 이것이 취업을 위한 코딩 테스트다 with 파이썬 | 나동빈 - 교보문고 이것이 취업을 위한 코딩 테스트다 with 파이썬 | IT 취준생이라면 누구나 입사하고 싶은 카카오ㆍ삼성전자ㆍ네이버ㆍ라인! 취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생이라면 누구나 product.kyobobook.co.kr 👨‍💻 문제 정답 코드 문제 풀이 이진 탐색으로 풀 수 있는 문제다. 먼저 시작점(start)과 끝점(end)을 설정한다. 그런 다음 시작점이 끝점보다 커질 때까지 반복문을 돌면서 중간값(mid)을 도출하고, 주어진 떡의 길이를 탐색하며 중간값보다 큰 값이라면 해당 값에서 중간값을 뺀 값을 총합에 누적한다. .. 2023. 1. 28.
[이코테] 이진 탐색_부품 찾기(자바스크립트) 이번 글은 '이것이 취업을 위한 코딩테스트다' 내의 문제를 풀고 정답 코드를 정리한 것입니다. 이것이 취업을 위한 코딩 테스트다 with 파이썬 | 나동빈 - 교보문고 이것이 취업을 위한 코딩 테스트다 with 파이썬 | IT 취준생이라면 누구나 입사하고 싶은 카카오ㆍ삼성전자ㆍ네이버ㆍ라인! 취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생이라면 누구나 product.kyobobook.co.kr 👨‍💻 문제 정답 코드 답안 1(이진 탐색) 답안 2(계수 정렬) 답안 3(includes 메서드) 정답 풀이 다양한 방법으로 풀 수 있는 문제이다. 풀이 방법이 어찌됐든 손님이 요구하는 부품이 가게의 부품에 포함되어 있다면 yes, 아니라면 no를 출력하면 된다. 이진 탐색으로 풀려면 배열을 정렬해야 한다는.. 2023. 1. 28.
[Baekjoon] 1715 카드 정렬하기(자바스크립트/NodeJs) 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 👨‍💻 문제 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40.. 2023. 1. 27.
[프로그래머스] level 1 실패율(자바스크립트) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨‍💻 문제 정답 코드 문제 풀이 문제를 풀 때 필요한 값은 분모가 될 '도전자 수', 분자가 될 '아직 클리어 못 한 사람 수', 마지막으로 둘을 나눈 '실패율'이다. 도전자 수는 처음에는 stages의 길이를 대입해뒀다가 for 반복문을 돌면서 매 작업마다 아직 클리어 못 한 사람 수를 누적해서 뺀다. N이 5이고, stages가 [2, 1, 2, 6, 2, 4, 3, 3]이라면 아직 클리어 못 한 사람 수는 다음과 같을 것이다. [1, 2, 2, 2, 3, 3, 4, 6] 총 스테이지 1 ~ 5 1 스테.. 2023. 1. 27.
728x90
반응형