문제 링크programmers.co.kr/learn/courses/30/lessons/68645코딩테스트 연습 - 삼각 달팽이5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11]programmers.co.kr 풀이문제의 요구대로 시뮬레이션해줍시다.아래 방향, 오른쪽 방향, 윗 방향의 순서대로 값을 채웁니다.이때 $n, n-1, n-2, ..., 1$개씩 채워주면 됩니다. 각 동작을 함수로 구현하고 적절한 시작점과 길이를 넘겨줍시다. 정답 코드let ans, num = 1; const down = (x, y, l) => { if(l == 0) return; for(let k = 0; k..
문제 링크programmers.co.kr/learn/courses/30/lessons/68936?language=javascript#코딩테스트 연습 - 쿼드압축 후 개수 세기[[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15]programmers.co.kr 풀이재귀 함수를 이용하면 됩니다. 1) 배열의 모든 수의 합을 구합니다. 이때 n차원 배열을 풀어주는 flat() 함수를 이용하면 편합니다. fla..
문제 링크 programmers.co.kr/learn/courses/30/lessons/70129 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr 풀이 정규 표현식을 이용하여 간단하게 풀 수 있습니다. 1) regexp /1/g를 이용해 s에서 1만 뽑아줍시다. 2) 정답에 (s의 길이 - 위에서 구한 1들의 개수)를 더해줍니다. 3) 1들의 개수를 2진 변환합니다. 4) s가 1이 될 때까지 반복합시다. 정답 코드 function solution(s) { const ans = [0, 0]; while(s !== '1'){ const cnt = s.match(/1/g).length; ans[0]++; ans[1] += s.length - cnt; s = cnt.toString(2)..
문제 링크 programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 풀이 자바스크립트는 진법 변환을 지원합니다. toString() 메소드는 일반적으로는 수를 string으로 바꿔주는 함수이지만, 기수를 인자로 주면 그에 맞는 진수로 변환해줍니다. parseInt() 함수는 string을 수로 바꿔주는 함수이며, string이 몇 진수인지 기수를 인자로 주면 그에 맞춰 10진수로 변환해..
문제 링크 programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 풀이 모든 쌍을 배열에 넣고 정렬해줍시다. 이때, include()를 이용하여 존재하지 않는 원소일 때만 넣어줍니다. 정답 코드 unction solution(numbers) { const p = []; for(let i=0; i
문제 링크 programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 풀이 reduce 함수를 이용해 쉽게 구현합시다. 정답 코드 function solution(a, b) { return a.reduce((ans, cur, i) => ans + a[i] * b[i], 0); }
문제 링크 programmers.co.kr/learn/courses/30/lessons/72410?language=javascript# 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 자바스크립트 연습 겸 프로그래머스 레벨 1 문제들을 풀어보고 있습니다. 이 문제를 C++로 풀 때는 몰랐는데 막상 풀어보니 정규표현식에 입문하기 너무 좋은 문제입니다. 이리저리 검색해보면서 정규표현식이 되게 친숙해졌습니다. 이게 복잡해 보여서 그렇지 정규식 생각보다 어렵지 않습니다.. 우선 전체적인 코드는 이렇습니다. f..