코딩테스트

코딩테스트

[Python] 크레인 인형 뽑기 게임

난이도: Lv. 1정답률: 52%문제: https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  알고리즘크레인 번호에 해당하는 board의 열 맨 위에 있는 인형의 번호를 찾는다.바구니가 비어있다면 바구니에 담는다바구니가 비어있지 않다면 바구니 맨 위에 있는 인형의 번호와 비교하고, 동일할 경우 바구니의 맨 위 인형을 없애고 정답을 1 올린다. 동일하지 않다면 인형을 담는다.인형의 번호를 0으로 바꾼다.  코드def solution(board, moves..

코딩테스트

[JS] 호텔 대실

난이도: Lv. 2정답률: 50%문제: https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  알고리즘파라미터로 주어진 배열을 순회하며 대실 시각을 저장하는 새로운 배열에 [대실 시작 시각, 1], [대실 종료 시각 + 10분, -1] 두 배열을 담는다.1에서 만든 배열을 시각 기준으로 오름차순 정렬한다. 동일한 시각이 있을 경우 대실 종료인 시각이 앞에 와야 한다.2에서 정렬한 배열을 순회하며 각 배열의 첫 번째 인덱스의 값을 더한다. 더하면서 현재..

코딩테스트

[JS] 시소 짝꿍

난이도: Lv. 2정답률: 49%문제: https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  알고리즘duplication 맵과 cases 맵을 선언 한다.duplication 맵은 key를 몸무게, value를 그 몸무게를 가진 사람의 수로 한다. 중복을 체크하기 위한 맵이다.cases 맵은 몸무게에 x2, x3, x4를 계산한 값을 key로 가지고, 해당 값이 몇 개인지를 value로 가진다.파라미터로 주어진 weights 배열을 순회한다.dupl..

코딩테스트

[JS] 마법의 엘리베이터

난이도: Lv. 2정답률: 49%문제: https://school.programmers.co.kr/learn/courses/30/lessons/148653 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  알고리즘현재 층의 일의 자리 숫자가 5보다 크면 일의 자리 숫자가 0이 되도록 층을 올라간다. 현재 층의 십의 자리 바뀔 것이므로 현재 층에서 10으로 정수 나눗셈을 하고, 1을 더한다. 이번에 사용한 마법의 돌은 (10 - 현재 층의 일의 자리 숫자)이다.현재 층의 일의 자리 숫자가 5보다 작으면 내려간다. 현재 층을 10으로 정수 나눗셈하고, 사용한 마법..

코딩테스트

[JS] 메뉴 리뉴얼

난이도: Lv. 2 정답률: 49% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 해당 단품 메뉴들의 개수가 될 수 있는 모든 경우의 수가 몇 개 나올 수 있는지 위와 같은 형태로 객체에 담는다. 첫 번째 키는 단품 메뉴들의 개수, 두 번째 키는 가능한 메뉴 조합이다. 파라미터로 주어진 각 사람의 주문 내역을 오름차순으로 정렬해서 DFS에 돌리며 객체를 채운다.. 'AB'와 'BA'는 같기 코스이기 때문에 정렬을 한다.. 1로..

코딩테스트

[JS] 전력망을 둘로 나누기

난이도: Lv. 2 정답률: 49% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 key는 송전탑의 번호, value는 key 송전탑과 연결된 모든 송전탑을 담은 배열인 객체를 만든다. 전선을 하나씩 끊는다. 끊은 전선인 송전탑 두 개를 set에 넣는다. 첫 번째 송전탑과 연결된 모든 송전탑을 스택에 넣는다. 스택에 있는 송전탑을 하나씩 꺼내면서 set에 존재하는지 확인한다. 즉, 이미 방문했던 송전탑인지 확인한다. 방문하지 ..

코딩테스트

[JS] 124 나라의 숫자

난이도: Lv. 2 정답률: 50% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 기본적으로는 3진수를 구하는 방법으로 푼다. 이 문제에서 중요한 점은 0이다. 10진수를 3진수로 바꾸면 0이 생긴다. 0을 1로, 1을 2로, 2를 4로 바꾸면 해결될 문제 같지만 10진수 2를 124 나라의 숫자로 변환해 본다고 해보자. 10진수에서 2는 02와 동일하다. 하지만 2를 124 나라의 숫자로 바꾸면 2이고, 02를 124 나라의..

코딩테스트

[JS] 유전법칙

알고리즘 파라미터로 주어진 세대부터 2세대에 도달할 때까지 현재 인덱스가 1~4 중 어딘지 구해서 스택에 넣는다. 스택의 맨 위에 있는 인덱스는 2세대의 인덱스다. 1이면 RR, 2이면 Rr, 3이면 Rr, 4이면 rr이다. 1과 4인 경우는 자식 모드 부모와 동일하지만 2, 3인 경우에는 자식이 3종류가 나올 수 있으므로 다음 세대를 본다. 2에서 결정을 못하고 파라미터로 주어진 세대까지 내려오게되면 주어진 세대의 1~4 값을 가지는 인덱스가 정답이다. 코드 function solution(queries) { const answer = []; const generation2nd = ['', 'RR', 'Rr', 'Rr', 'rr']; for (let query of queries) { if (query..

코딩테스트

[JS] 연속된 부분 수열의 합

난이도: Lv. 2 정답률: 51% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 sequence의 첫 번째 값을 sum에 저장하고, 시작 인덱스와 끝 인덱스를 0으로 지정한다. sum과 k의 관계에 따라 시작 인덱스와 끝 인덱스를 조정한다. 끝 인덱스가 sequence 배열의 끝에 도달할 때까지 반복한다. sum이 k보다 작을 경우 끝 인덱스를 1 증가시키고 그 인덱스에 해당하는 값을 sum에 더한다. sum이 k보다 클 ..

코딩테스트

[JS] 큰 수 만들기

난이도: Lv. 2 정답률: 51% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 주어진 문자열에 있는 숫자들을 차례로 스택에 넣는다. 문자열을 모두 순회했거나 k번만큼 제거했다면 반복문을 멈춘다. (스택의 맨 위에 있는 숫자 < 넣을 숫자) 이면 넣지 않고 스택을 pop() 한다. 위의 경우가 아니라면 스택에 넣는다. 위의 반복문을 실행하고 나면 두 가지 경우가 있다. 덜 제거했는데 문자열을 모두 순회한 경우 k번만큼 숫자를..

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