본문 바로가기

코딩테스트7

[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.