코딩테스트

코딩테스트

[JS] 주차 요금 계산

난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 구조체에 차량 번호를 key로 하고, value는 입차/출차 시간을 저장하는 배열로 한다. 2. value의 길이가 홀수이면 입차된 후 출차된 내역이 없는 것이므로 value 배열에 '23:59'를 push()한다. 3. 각 차량별 누적 시간을 계산하여 요금을 계산하고, [차량번호, 요금] 배열을 정답 배열에 push() 한다. 4. 3.의 배열을 차량 번..

코딩테스트

[JS] 더 맵게

난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 힙 구현 insert 구현 배열의 맨 뒤에 삽입할 데이터를 push()하고, 업 버블링을 한다. 삽인한 데이터가 부모 노드의 값보다 클 때까지 반복한다. delete 구현 배열의 맨 앞에 있는 값을 따로 저장하고 delete 함수의 마지막에서 반환한다. 배열의 맨 앞 값을 저장한 후 배열의 맨 뒷 값을 pop()하여 배열의 맨 앞 원소에 덮어씌우고, 다운 버블링..

코딩테스트

[JS] 게임 맵 최단거리

난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 시작 위치 배열을 큐에 넣는다. 시작 위치 배열은 [행 번호, 열 번호, 지나온 칸의 개수] 로 이루어져 있다. 2. 큐에서 배열을 하나 뺴서 현재 위치가 목적지인지 확인한다. 3-1. 목적지면 시작 위치부터 목적지까지 몇 칸을 지나왔는지 반환한다. 3-2. 목적지가 아니라면 위아래, 양 옆으로 갈 수 있는지 확인하고 갈 수 있다면 그 위치의 배열을 큐에 삽..

코딩테스트

[JS] 모음사전

난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 사전에 수록되어 있는 단어의 최대 길이가 5이므로 문자열의 길이가 5가 될 때까지 재귀함수를 수행한다., 2. 재귀함수 수행 중 word와 일치하는 단어가 나오면 몇 번째 단어인지 answer에 저장한다. 코드 function solution(word) { var answer = 0; const vowel = ['A', 'E', 'I', 'O', 'U'];..

코딩테스트

[JS] [3차] n진수 게임

난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 튜브가 마지막으로 말할 숫자의 인덱스는 p - 1 + m * (t - 1) 이므로 p + m * (t - 1) 길이만큼의 문자열을 구한다. 2. 1.에서 구한 문자열 중 튜브가 말해야 하는 숫자만 정답 문자열에 넣는다. 코드 function solution(n, t, m, p) { var answer = ''; let numString = ''; const..

코딩테스트

[JS] [3차] 압축

난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 사전에 존재하지 않는 단어가 나올때까지 문자를 계속 추가한다. 2. 사전에 존재하지 않는 단어가 나오면 마지막 문자를 제외한 문자열의 사전 색인 번호를 정답 배열에 추가하고, 사전에도 추가한다. 3-1. 주어진 문자열의 마지막 문자를 포함한 문자열이 사전에 존재하는 경우의 예외 처리 (j === msg.length - 1 부분) 3-2. 주어진 문자열의 마..

코딩테스트

[JS] k진수에서 소수 개수 구하기

난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. n을 k진수로 변환한다. 2. 시작 인덱스를 0으로 초기화하고, 1.의 문자열을 순회하며 0을 만나면 시작 인덱스부터 0 전까지의 문자열을 복사해서 배열에 넣는다. 0을 만났을 때 다음 시작 인덱스는 0 다음 인덱스다. for문이 끝났을 때 시작 인덱스부터 마지막 문자까지의 문자열은 배열에 넣지 않은 상태이므로 배열에 넣어준다. 3. 배열의 각 원소에 대해..

코딩테스트

[JS] 타겟 넘버

난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 누적 합을 나타내는 변수는 sum, 위 그림에서 -1과 1을 나타내는 변수는 flag, 트리의 레벨을 나타내는 변수는 idx이다. 1. sum에 flag와 주어진 정수 배열에서 idx에 해당하는 원소를 곱하여 더하고, idx를 하나 증가시킨다. 2. idx가 주어진 배열의 길이와 같아지면 주어진 배열의 원소들을 연산한 것이기 때문에 재귀함수를 종료한다. 종료하기..

코딩테스트

[JS] 전화번호 목록

난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 전화번호부를 String 자료형을 기준으로 오름차순 정렬한다. 2. 앞에 위치한 전화번호가 바로 뒤에 위치한 전화번호의 접두사인지 확인한다. 접두사일 경우 false를 반환한다. 코드 해시 사용 function solution(phone_book) { phone_book.sort(); const hashMap = new Map(); for (let i = ..

코딩테스트

[JS] [1차] 뉴스 클러스터링

난이도: Lv. 2 문제: https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 입력으로 들어온 두 문자열을 두 글자씩 끊어서 Object에 담는다. Object의 키-값 쌍은 해당 문자열이 몇 개 있는가를 나타낸다. 두 글자씩 끊었을 때 영문자가 아닌 글자가 포함되어 있는 문자열인 경우 Object에 담지 않고, 모두 영문자여서 Obejct에 담을 때는 소문자로 변경하여 담는다. 다중집합 원소를 비교할 때 대소문자의 차이를 구분하지 ..

미안하다 강림이 좀 늦었다
'코딩테스트' 카테고리의 글 목록 (4 Page)