본문 바로가기

Programming/Algorithm8

[2019][Kakao Recruit] 크레인 인형뽑기 게임 - javascript 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 Moves 배열 요소를 루프 돌면서 Board 배열 요소를 루프. Moves 요소의 값에 해당하는 인덱스의 Board 요소 값이 0이 아닌 경우를 확인. 0이 아닐 경우에 steak에 쌓여있는 마지막 값과 해당 값이 동일한지 확인. 동일할 경우 Steak 배열의 마지막 요소를 지우고 answer 값을 더한 뒤, Board 요소의 값을 0으로 변환. 동일하지 않을 경우 Boar.. 2022. 8. 2.
[2018][Kakao Recurit] 다트게임 - javascript 1. 문제 숫자(0-9), 문자(S/D/T), 특수문자(*/#) 으로 구성되어 세 번 반복되는 문자열. 아래의 조건에 따라 최종 결과를 구하라. 숫자는 0 ~ 10 까지의 정수. S는 숫자를 1제곱. D는 숫자를 2제곱, T는 숫자를 3제곱. *은 숫자에 -1 배. #은 현재 및 이전 반복의 숫자를 2배. 3. 풀이 제시된 조건에 따라 계산. 4. 소스코드 function solution(dartResult) { var numArr = []; var number = 0; var answer = 0; for (var i=0; i { answer += Number(item); }) return answer; } 2022. 7. 29.
[2018][Kakao Recruit] 비밀지도 - javascript 1. 문제 한 변의 길이가 N인 2차원 배열 두 개. 배열의 각 항목은 1 또는 0으로 구성. 하나의 행에 대해 십진수로 변환된 배열 두 개가 있을 때, 두 배열의 같은 자리가 모두 0이어야면 0으로 처리. 그렇지 않을 경우 모두 1로 처리. 이때 0으로 표시되는 부분은 '공백', 그렇지 않은 부분은 '#' 으로 표시하는 배열을 반환하라. 2. INPUT N : 배열 한 변의 길이 Arr1 : 10진수 N개로 구성된 배열 1. Arr2 : 10진수 N개로 구성된 배열 2. 3. 풀이 한 변의 길이 N만큼 루프를 돌며 Arr1과 Arr2의 십진수를 이진수로 변환. 이후 두 이진수 값을 비교하여 둘 모두 0일 경우 공백, 아닐경우 # 을 반환. 4. 소스코드 function solution(n, arr1, .. 2022. 7. 29.
[2019][Kakao Recruit] 실패율 - javascript 1. 문제 N개의 스테이지가 있는 게임. 해당 게임을 플레이하는 사용자들이 특정 스테이지를 클리어하지 못하고 머물고 있을때, 각 스테이지별로 사용자의 클리어 실패율(%) 가 높은 스테이지를 순서대로 나열하라. 2. INPUT N : 스테이지 개수 stages : 각 사용자가 클리어하지 못하고 있는 스테이지 3. 풀이 실패율 = 현재 해당 스테이지에 머무르는 사용자 / 해당 스테이지에 도달한 모든 사용자 N개의 스테이지를 모두 클리어 했을 때 N+1로 표시되므로, 1부터 N+1 까지의 루프 속에서 각 스테이지에 잔존한 사람을 구하여 실패율을 계산하고, 잔존해있는 사람을 전체 사람에서 제외시킨 후 다음 루프로 넘기는 방식을 채택. [스테이지, 실패율] 값을 가진 배열을 생성하여 실패율에 따라 차순을 정렬하고.. 2022. 7. 29.
[2020][Kakao Recruit] 키패드 누르기 - javascript 1. 문제 아래의 조건에 따라서 주어진 숫자 배열을 차례대로 누르는 손가락이 왼쪽인지 오른쪽인지 구하라. 왼쪽 손가락은 * 에서 시작. [1, 4, 7] 은 왼쪽 손가락이 터치. 오른 손가락은 # 에서 시작. [3, 6, 9] 는 오른 손가락이 터치. [2, 5, 8, 0] 은 두 손가락 중 가까운 손가락이 터치. 두 손가락 거리가 같을 경우 왼-오른손잡이 터치. 2. 풀이 주어진 조건에 따라 그대로 계산. 손가락 거리 계산은 [x, y] 각 축끼리 계산하여 값을 더하여 사용. 3. 소스코드 function solution(numbers, hand) { var lH = [3, 0]; var rH = [3, 2]; var keypad = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ['*.. 2022. 7. 28.
[2021][Kakao Recruit] 숫자 문자열과 영단어 - javascript 1. 문제 다음과 같이 주어지는 문자열을 숫자로 변환. one4seveneight→ "1478" 23four5six7→ "234567" 1zerotwozero3→ "10203" 2. 풀이 특정 문자열을 숫자로 변환. 정규표현식 사용. 3. 소스코드 function solution(s) { var answer = s.replace(/one/g, 1) .replace(/two/g, 2) .replace(/three/g, 3) .replace(/four/g, 4) .replace(/five/g, 5) .replace(/six/g, 6) .replace(/seven/g, 7) .replace(/eight/g, 8) .replace(/nine/g, 9) .replace(/zero/g, 0); return pars.. 2022. 7. 28.
[2021][Kakao Recruit] 신규 아이디 추천 - Javascript 1. 문제 입력받은 ID를 다음의 규칙에 따라 자동으로 변환한다. 모든 대문자를 소문자로 치환. 알파벳 소문자 / 숫자 / 빼기(-) / 밑줄(_) / 마침표(.) 제외 문자 제거. 마침표(.)가 두 번 이상 연속된 부분을 하나의 마침표(.) 로 치환. 마침표(.)가 처음이나 끝에 위치할 경우 제거. 빈 문자열일 경우 'a' 대입. 15개 문자 제외한 나머지 문자 제거. 이후 맨 뒤 문자열이 마침표(.) 일 경우 마침표(.) 제거. 길이가 2자 이하일 경우 마지막 문자를 3자가 될 때 까지 반복. 2. 풀이 규칙을 따라 문자열 변환. 3. 소스코드 function solution(new_id) { var answer = ''; answer = new_id.toLowerCase() // Level 1 .r.. 2022. 7. 27.
[2022][Kakao Recruit] 신고 결과 받기 Javascript 1. 문제 사용자는 다른 사용자를 신고할 수 있음. 신고당한 횟수 K번이 넘는 사용자는 사용이 정지되며, 이 때 해당 사용자를 신고한 사용자들에게 처리결과 메일이 발송됨. 반복적인 신고는 1번으로 간주함. 사용자 배열 A와, 사용자 신고 내용 배열 B, 그리고 사용 정지 기준 K 가 주어질 때, 각 사용자가 받는 처리결과 메일의 수가 담긴 배열을 구하라. 2. INPUT Variables Description Example id_list 사용자 배열 ["AAA", "BBB", "CCC", "DDD", "EEE"] report 사용자 신고 문자열 배열 ["AAA BBB", "AAA CCC", "CCC DDD", "BBB EEE"] k 사용정지 기준 횟수 3 3. 풀이 신고당한 사용자를 기준으로, 신고한 사.. 2022. 7. 27.