코딩 테스트/programmers

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(a, b, c, d) { const numbers = [a, b, c, d]; // 주사위 숫자의 빈도수를 저장할 객체 생성 const dice = {}; // 주사위 숫자의 빈도수를 계산하여 객체에 저장 numbers.forEach(x => { dice[x] = (dice[x] || 0) + 1; }); // 주사위 숫자들을 숫자로 변환하여 배열로 저장 const keys = Object.keys(dice).map(Number); // 주사위 숫자들의 빈도수를 배열..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 str_list에 for문을 돌려 "l"이나 "r" 중 먼저 등장하는 요소에 알맞는 식을 반환하면 된다. 해당 배열에 "l"이나 "r"이 없으면 for문에서 아무런 결괏값도 반환하지 않으므로 순서상 마지막에 위치하는 빈 배열([])이 반환된다. 정답 function solution(str_list) { for (let i = 0; i < str_list.length; i++) { // "l"을 찾으면 해당 위치 이전의 요소들로 이루어진 배열을 반환한다 if (str_list[i] === "l") r..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 Array.from()은 유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운 Array 객체를 만든다. console.log(Array.from("foo")); // Expected output: Array ["f", "o", "o"] console.log(Array.from([1, 2, 3], x => x + x)); // Expected output: Array [2, 4, 6] // Array.from()과 화살표 함수 사용..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 for...of문은 반복 가능한 객체(Array, Map, Set, String, TypedArray, arguments 객체 등을 포함)에 대해 반복하고 각 개별 속성값에 대해 실행되는 문이 있는 사용자 정의 반복 후크를 호출하는 루프를 생성한다. const arr = ["a", "b", "c"]; for (const x of arr) { console.log(x); } // Expected output: "a" // Expected output: "b" // Expected output: "c"..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 sort()에 비교 함수를 넣지 않으면 문자열을 기준으로 정렬한다. 예를 들어 2등과 10등을 비교하면 10등이 더 앞으로 정렬된다. 문자열 기준 정렬에서는 "2"보다 "10"이 더 빠르기 때문이다. let arr = [3, 2, 1, 6, 5, 4, 7, 8, 9, 10, 11, 12]; // 문자열 기준 정렬 arr.sort(); console.log(arr); // Expected output: Array [1, 10, 11, 12, 2, 3, 4, 5, 6, 7, 8, 9] // 숫자 기준 ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 각종 특수문자를 문자열로 반환하려면 백틱(``)을 쓰면 된다. 백슬래시(\)의 경우 앞에 백슬래시를 하나 더 추가해주면 된다. console.log(`\\`); // Expected output: \ console.log(`\\\\\\`); // Expected output: \\\ 정답 const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdo..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 concat()은 인자로 주어진 배열이나 값들을 기존 배열에 합쳐서 새 배열을 반환한다. 기존 배열을 변경하지 않고, 추가된 새로운 배열을 반환한다. const array1 = ['a', 'b', 'c']; const array2 = ['d', 'e', 'f']; const array3 = array1.concat(array2); console.log(array3); // Expected output: Array ["a", "b", "c", "d", "e", "f"] 정답 function solut..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(picture, k) { let answer = []; picture.forEach(x => { let tmp = []; // 임시 배열을 생성한다 [...x].map(x => { // 각각의 x에 대해서 반복문 실행한다 tmp.push(x.repeat(k)); // 문자를 k번 반복해 임시 배열에 추가한다 }); answer.push(Array(k).fill(tmp.join(""))); // 임시 배열을 k번 반복하여 answer에 추가한다 }); return an..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 Set()으로 배열에서 중복 요소를 제거할 수 있다. 해당 결괏값을 배열로 바꾸려면 스프레드 연산자(...)를 쓰면 된다. let arr = [1, 2, 2, 3, 3, 3, 4, 5]; arr = new Set(arr); console.log(arr); // Expected output: Set(5) { 1, 2, 3, 4, 5 } arr = [...new Set(arr)]; console.log(arr); // Expected output: [ 1, 2, 3, 4, 5 ] 정답 function ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 BigInt()는 Number()의 원시 값이 안정적으로 나타낼 수 있는 최대치인 2^53 - 1(9,007,199,254,740,991)보다 큰 정수를 표현할 수 있는 내장 객체이다. 정답 function solution(a, b) { return String(BigInt(a) + BigInt(b)); }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 반복문의 조건을 잘 확인한다. 문제 초반에 "변수 i를 만들어 초기값을 0으로 설정한 뒤, i가 arr의 길이보다 작으면 다음 작업을 반복한다"라고 되어 있다. 따라서 while문의 조건은 i < arr.length가 된다. 정답 function solution(arr) { let i = 0; let stk = []; while (i < arr.length) { if (stk.length === 0) { stk.push(arr[i]); i++; } else if (stk[stk.length - 1]..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 lastIndexOf()는 주어진 값과 일치하는 부분을 fromIndex로부터 역순으로 탐색하여, 최초로 마주치는 인덱스를 반환한다. 일치하는 부분을 찾을 수 없으면 -1을 반환한다. 정답 function solution(arr) { return arr.includes(2) ? arr.slice(arr.indexOf(2), arr.lastIndexOf(2) + 1) : [-1]; }
문제 코딩테스트 연습 - 문자 개수 세기 "Programmers" [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0] school.programmers.co.kr 정답 // 아스키 코드 활용 function solution(my_string) { // 대소문자 알파벳은 총 52개이므로 길이가 52인 alphabet 배열을 0으로 채운다 let alphabet = Array(52).fill(0); // my_string을 배열로 바꿔 forEach문을 돌린다 // 아스키 코드에서 ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 1은 2의 0승이므로 arr의 길이가 2 미만이면 arr를 정답으로 그대로 출력한다. 두 배열을 합칠 때 push(), flat() 대신 스프레드 연산자(...)를 활용해서 표현할 수 있다. // 배열 합치기 - push(), flat() let arr1 = [1, 2, 3, 4, 5]; let arr2 = [0, 0, 0]; arr1.push(arr2); console.log(arr1.flat()); // Expected output:[ 1, 2, 3, 4, 5, 0, 0, 0 ] // 배열 합치..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 0은 0을 제외한 모든 정수의 배수이다. 반복문에서 arr[x]++를 사용하면 원본 배열의 해당 값이 바뀐다. // 예시의 arr는 다음과 같이 바뀐다 // [0, 1, 2, 4, 3] + 1, 1, 1, 1, 1 // [1, 2, 3, 5, 4] + 1, 0, 1, 0, 0 // [2, 2, 4, 5, 4] + 1, 0, 0, 1, 0 // [3, 2, 4, 6, 4] let arr = [0, 1, 2, 3]; arr.forEach((x, i) => { if (i % 2 === 0) arr[i]+..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 // x가 true면 answer에 arr[i]를 문자열로 바꿔 arr[i] * 2만큼 반복해서 넣는다 // x가 false면 answer를 뒤에서부터 arr[i] 만큼 잘라낸다 // answer를 배열로 바꾸고 숫자로 반환해 정답을 출력한다 function solution(arr, flag) { let answer = ""; flag.forEach((x, i) => { if (x) { answer += String(arr[i]).repeat(arr[i] * 2); } else { answer = ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 split()에 정규 표현식을 써서 myStr을 배열로 나눈다. filter(x => x)를 쓰면 배열에서 빈 문자열이 제거된다. answer에 값이 있으면 출력하고 그렇지 않으면 "[EMPTY]"를 출력한다. 정답 function solution(myStr) { const answer = myStr.split(/[a|b|c]/).filter(x => x); return answer.length ? answer : ["EMPTY"]; }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 i + j
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 Date 생성자는 시간의 특정 지점을 나타내는 Date 객체를 플랫폼에 종속되지 않는 형태로 생성한다. Date 객체는 1970년 1월 1일 UTC(국제표준시) 자정으로부터 지난 시간을 밀리초로 나타내는 UNIX 타임스탬프를 담는다. 정답 function solution(date1, date2) { return new Date(date2) > new Date(date1) ? 1 : 0; }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 정답 1의 while문에서 arr[s++]++ 잘 봐두자. 정답 // forEach문으로 queries의 값을 [s, e]로 구조 분해 할당 // s가 e와 같아질 때까지 while문을 반복한다 // 반복할 때마다 arr[s++]에 해당하는 값을 1씩 더한다(++) // 이렇게 하면 모든 s의 값 === arr의 인덱스, 가 되고 해당 값을 1씩 더하게 된다 function solution(arr, queries) { queries.forEach(([s, e]) => { while (s { retu..
카버
'코딩 테스트/programmers' 카테고리의 글 목록 (2 Page)