코딩 테스트

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(s) { // 문자열 s를 배열 형태로 만든다 const sArr = s.split(""); // x의 초깃값은 s의 첫 글자로 설정 let x = s.substring(0, 1); let xCount = 0; let yCount = 0; let answer = 0; // sArr를 순회하며 조건에 따라 answer를 더한다 for (let i = 0; i < sArr.length; i++) { if (sArr[i] === x) { // 현재 글자와 x가 같으면 xC..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 이 코드는 입력된 숫자 n에 따라 nxn 크기의 2차원 배열을 생성하고, 시계방향으로 숫자를 채우는 함수이다. 우선, 크기 n의 2차원 배열 arr을 생성한다. 모든 요소는 0으로 초기화된다. num 변수를 1로 초기화한다. 이 변수는 배열에 할당될 증가하는 숫자를 나타낸다. 현재 행을 나타내는 row 변수와 현재 열을 나타내는 col 변수를 0으로 초기화한다. 이동 방향을 나타내는 direction 변수를 "right"로 초기화한다. 이 변수는 "right" (오른쪽), "down" (아래쪽), ..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 // 배열의 각 쿼리에 대해 반복한다 // (짝수 인덱스인 경우) i를 2로 나눈 나머지가 0이면 arr 배열을 0부터 x까지 잘라낸다 // (홀수 인덱스인 경우) i를 2로 나눈 나머지가 0이 아니면 arr 배열을 x부터 끝까지 잘라낸다 function solution(arr, query) { query.forEach((x, i) => { i % 2 === 0 ? (arr = arr.slice(0, x + 1)) : (arr = arr.slice(x)); }); return arr; }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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)); }
문제 JavaScript DOM - Code Exercises | CroCoder The DOM or the Document Object Model of the page is created after the web page is loaded. Learn some DOM manuipulation with these exercises. www.crocoder.dev 메모 Document.getElementById()는 주어진 문자열과 일치하는 id 속성을 가진 요소를 찾고, 이를 나타내는 엘리먼트 객체를 반환한다. ID는 문서 내에서 유일해야 하기 때문에 특정 요소를 빠르게 찾을 때 유용하다. document.getElementById(id); innerHTML은 엘리먼트 내에 포함된 HTML 또는 XML ..
문제 JavaScript DOM - Code Exercises | CroCoder The DOM or the Document Object Model of the page is created after the web page is loaded. Learn some DOM manuipulation with these exercises. www.crocoder.dev 메모 querySelectorAll()은 지정된 셀렉터 그룹에 일치하는 다큐먼트의 엘리먼트 리스트를 나타내는 정적(살아 있지 않은)인 NodeList를 반환한다. // 클래스가 "note" 또는 "alert"인 모든 엘리먼트의 목록을 반환 var matches = document.querySelectorAll("div.note, div.alert..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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]..
문제 JavaScript DOM - Code Exercises | CroCoder The DOM or the Document Object Model of the page is created after the web page is loaded. Learn some DOM manuipulation with these exercises. www.crocoder.dev 메모 Document.querySelector()는 제공한 선택자 또는 선택자 뭉치와 일치하는 문서 내 첫 번째 Element를 반환한다. 일치하는 요소가 없으면 null을 반환한다. Document.createElement()는 지정한 tagName의 HTML 요소를 만들어 반환한다. tagName을 인식할 수 없으면 HTMLUnknownEle..
문제 JavaScript DOM - Code Exercises | CroCoder The DOM or the Document Object Model of the page is created after the web page is loaded. Learn some DOM manuipulation with these exercises. www.crocoder.dev 메모 Document.querySelector()는 제공한 선택자 또는 선택자 뭉치와 일치하는 문서 내 첫 번째 Element를 반환한다. 일치하는 요소가 없으면 null을 반환한다. Document.createElement()는 지정한 tagName의 HTML 요소를 만들어 반환한다. tagName을 인식할 수 없으면 HTMLUnknownEle..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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문을 돌린다 // 아스키 코드에서 ..
카버
'코딩 테스트' 카테고리의 글 목록 (2 Page)