코딩테스트 7

[코딩테스트 기초] 회문문자열 판별(재귀함수, array splice을 이용하여 - javascript)

회문문자열(palindrome)은 거꾸로 읽어도 알파벳이 똑같은 글자를 말한다. 알고리즘의 가장 기초적인 문제로 자주 등장하는데, 자바스크립트에서는 reverse 메소드를 이용하여 많이 푼다. 여기에서는 재귀함수와 splice 메소드를 이용하여 풀어보겠다. 먼저 args로 넘어온 문자를 split을 이용해 Array로 만들어주고, 재귀함수(recursive)로 돌린다. 재귀함수를 사용할 때는 무조건 if/else 구문으로 조건을 만들 것. 특정 조건을 통과하면 true을 리턴, 아니면 false을 리턴하면 된다. 여기서 특정 조건은 두 개가 되는데,하나는 배열의 길이가 1 이하일 때.글자가 1글자면 무조건 회문문자열이 된다. ex) 'a', 'i', 'x', ... 나머지 하나는? "첫번째 글자와 마지막..

코딩테스트 2022.02.20

[코딩테스트 기본] 10진수를 2진수로 바꾸기 (Javascript)

사실 자바스크립트에서는 Object.prototype.toString() 이라는 Web API로 진수 변환을 바로 할 수 있다. toString의 인자로 radix(기수)을 넣으면 바로 변환을 해준다. (2~36까지만) 그래서 3을 2진수로 바꾸고 싶으면 아래와 같이 하면 된다. let n = 3; let res = n.toString(2); console.log(res); 위 결과는 '11'이 될 것이다. 그러나 개발자라면 웹 API를 이용하지 않고 그냥 만들 수 있어야 한다. 코드로 구현하기 전에 수학(!!)으로 10진수를 2진수로 바꿔보자. 10진수로 된 정수 a를 2진수로 바꾼다고 하면 a를 2로 나눈 나머지와 몫을 다시 2로 나눈 나머지, 몫을 다시 2로 나눈 나머지,, 이렇게 몫을 더이상 2로..

코딩테스트 2022.02.20

[코딩테스트] 2022 KAKAO BLIND RECRUITMENT 신고 결과 받기(Javascript)

문제 보러 가기: https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr function solution(id_list, report, k) { var answer = Array.from({length: id_list.length}, ()=>0); var report_map = new Map(); // 신고 명단 id_list.forEach((id)=>{ report_map.set(id, []); // 신고 ..

코딩테스트 2022.02.06

[프로그래머스 코딩테스트] 완전탐색 > 모의고사 (level 1)

문제 보러 가기: https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 나의 풀이: (1) 1, 2, 3번 학생의 답을 loop에 넣고 맞는지 틀린지 찾아서 점수를 매긴다. 페이지네이션 원리와 비슷하다. answers의 index을 각 학생의 점수의 길이로 나눈 나머지를 구한다. %을 사용 (2) scores라는 배열을 만들고 배열을 [n번 학생, n번 학생의 점수]로 만든다. (3) scores을 좌표정렬 해준다..

코딩테스트 2021.12.26

[코딩테스트] 2018 카카오 블라인드 테스트 - [1차]비밀지도 (Javascript)

문제 보러 가기: https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 나의 풀이: https://programmers.co.kr/learn/courses/30/lessons/17681/solution_groups?language=javascript&type=my 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업..

코딩테스트 2021.11.27

[코딩테스트] 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기(Javascript)

문제 보러 가기: https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 나의 풀이: https://programmers.co.kr/learn/courses/30/lessons/64061/solution_groups?language=javascript&type=my 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. program..

코딩테스트 2021.11.22

[코딩테스트] 2020 카카오 인턴십 - 키패드 누르기 (Javascript)

문제 링크: https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 나의 풀이: https://programmers.co.kr/learn/courses/30/lessons/67256/solution_groups?language=javascript&type=my 프로그래머스 코드 중심의 개발자 채용. 스택 기..

코딩테스트 2021.11.21