문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 Array.from()으로 배열을 만들고 start에서 각각의 인덱스 값을 뺀 결과를 출력한다. 정답 function solution(start, end) { return Array.from({ length: start - end + 1 }, (x, i) => start - i); }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 findIndex()는 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환한다. 만족하는 요소가 없으면 -1을 반환한다. const array1 = [5, 12, 8, 130, 44]; const isLargeNumber = (element) => element > 13; console.log(array1.findIndex(isLargeNumber)); // Expected output: 3 정답 function solution(num_list) { return num_list...
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 while문의 조건을 잘 입력하면 break를 쓰지 않아도 된다. 정답 function solution(numbers, n) { let answer = 0; let i = 0; while (answer < n) { answer += numbers[i]; i++; } return answer; }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 slice()로 잘라내는 방법이 가장 간단하다. 좀 더 복잡한 조건이 필요할 때는 forEach()가 필요할 수도 있다. 정답 function solution(num_list, n) { return num_list.slice(0, n); } function solution(num_list, n) { let answer = []; num_list.forEach((x, index) => { if (index + 1
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 Array.from()과 화살표 함수 동시에 사용하기 // Using an arrow function as the map function to // manipulate the elements Array.from([1, 2, 3], x => x + x); // [2, 4, 6] // Generate a sequence of numbers // Since the array is initialized with `undefined` on each position, // the value of `v` bel..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 reduce 안에서 이렇게 삼항 연산자를 쓸 수도 있다. 정답 function solution(num_list) { return num_list.reduce((a, b) => (num_list.length >= 11 ? a + b : a - b)); }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 "flag ?"는 flag가 true인지 아닌지 판별한다. 정답 function solution(a, b, flag) { return flag ? a + b : a - b; }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 "문자열 뒤의 n글자"는 결국 "문자열 뒤에서부터 n글자"와 의미가 같다. 문자열의 길이에서 n을 뺀 값이 시작점이 된다. 끝점의 값은 substring에서 my_string.length(해당 문자열의 길이)로 잡는다. 그런데 사실 끝점의 값을 생략해도 동일한 결과가 출력된다. 정답 function solution(my_string, n) { return my_string.substring(my_string.length - n); } function solution(my_string, n) { re..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 이 문제에서는 map보다는 slice나 substring으로 푸는 게 더 적당하다. 정답 function solution(my_string, n) { return my_string.slice(0, n); } function solution(my_string, n) { return my_string.substring(0, n); } // my_string을 배열로 바꾼다 // map을 돌려 인덱스가 n 이하면 해당 값을 반환한다 // 인덱스가 n을 초과하면 빈 문자열("")을 반환한다 // 문자열 형..
Set() 메서드를 쓰면 문자열이나 배열에서 문자를 하나씩만 남기고 제거할 수 있다. const my_string = "My name is Carver"; console.log([...new Set(my_string)]); // ['M', 'y', ' ', 'n', 'a', 'm', 'e', 'i', 's', 'C', 'r', 'v'] has() 메서드는 Set에 특정 문자가 포함되어 있는지 확인한다. const set1 = new Set([1, 2, 3, 4, 5]); console.log(set1.has(1)); // Expected output: true console.log(set1.has(5)); // Expected output: true console.log(set1.has(6)); // E..
replace() 메서드는 조건에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환한다. 매개변수의 첫 번째 자리에는 교체할 문자열을, 두 번째 자리에는 반환할 문자열을 입력하면 된다. // 문자열을 다른 문자열로 교체 let text = "Hello World!"; let result = text.replace("World", "Steve"); // "Hello Steve!" 교체할 문자열이 두 개 이상이면 정규 표현식을 활용한다. // 문자열을 다른 문자열로 교체 let text = "Steve likes cats more than dogs"; let result = text.replace(/Steve/g, "Mike"); // Mike likes cats more than dogs //..
객체의 값은 키를 이용한 점(.) 표기법이나 대괄호([]) 표기법으로 쉽게 찾을 수 있다. 반대의 경우는 조금 복잡한데, 아래와 같은 방법이 있다. let obj = { 1: 1, 2: 1, 3: 3, 4: 1, 100: 4, 200: 5, }; // 찾고자 하는 값 let val = 4; // 객체의 키 배열을 먼저 구한다 // 해당 배열에서 값이 일치하는 객체의 키를 찾는다 let count = Object.keys(obj).find(x => obj[x] === val); console.log(count); // 100 Object.keys() 메서드는 객체의 키를 배열 형태로 반환한다. const object1 = { a: 'somestring', b: 42, c: false }; console.l..
문제 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 정답 let fs = require("fs"); let filePath = process.platform === "linux" ? "/dev/stdin" : "test.txt"; let N = Number(fs.readFileSync(filePath).toString()); for (let i = 1; i 0; j--) { let blank = " ".repe..
문제 10812번: 바구니 순서 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 정답 let fs = require("fs"); let filePath = process.platform === "linux" ? "/dev/stdin" : "test.txt"; let input = fs.readFileSync(filePath).toString().trim().split("\n"); let [n, m] = input.shift().split(" ").map(Number); let rotate = input.map(x => x.s..
mdn에서는 다음과 같은 CSS 속성 순서를 추천한다. display --객체의 노출여부/표현방식-- list-style position --위치/좌표-- float clear width / height --크기/여백-- padding / margin border / background --윤곽/배경-- color / font --글자/정렬-- text-decoration text-align / vertical-align white-space other text content --내용--
데스크톱에서는 잘 실행되던 localhost가 노트북에서는 실행되지 않았다. VSCode 터미널에 포트를 강제 종료하는 명령어를 입력하자 localhost가 정상적으로 실행되기 시작했다. // 사용 중인 포트 찾기 lsof -i :포트번호 // 실행 결과 lsof -i :8000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME Google xx2 yooil 29u IPv4 0x5xxfc28bxxc6xxdx 0t0 TCP localhost:50022->localhost:irdmi (ESTABLISHED) // 포트 강제 종료 명령어 kill -9 PID
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 같은 옹알이를 연속으로 할 수 없다는 점을 주의해서 풀어야 한다. 배열에서 발음 가능한 문자열을 각각의 숫자로 치환한다. map을 돌려 배열의 모든 요소를 개별적으로 쪼개고 숫자로 바꾼다. filter를 통해 숫자가 아닌 배열을 제거한다. for문으로 해당 배열에 연속된 숫자가 있으면 "X"를 추가한다. filter로 "X"가 없는 배열을 세서 반환한다. 정답 function solution(babbling) { for (let i = 0; i < babbling.length; i++) { babb..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 function solution(name, yearning, photo) { const obj = {}; name.map((x, idx) => { if (obj[x] === undefined) obj[x] = yearning[idx]; }); const answer = photo // .map(x => x.map(x => (obj[x] === undefined ? 0 : obj[x]))) .map(x => x.reduce((a, b) => a + b)); return answer; }
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 participant는 필연적으로 completion 전체를 포함하기 때문에 sort를 이용해 간단히 풀 수 있다. let participant = ["marina", "josipa", "nikola", "vinko", "filipa"]; let completion = ["josipa", "filipa", "marina", "nikola"]; participant.sort(); completion.sort(); console.log(participant); // [ 'filipa', 'josipa'..
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메모 입력받은 변수 X를 새로운 변수에 할당하지 않고 새로운 값으로 변경시켜도 된다. 여기에서 for문은 X와 Y에 서로 중복되는 값을 체크한다. X와 Y에 0부터 10까지의 숫자가 몇 개씩 들어 있는지 확인하고, 더 적게 들은 쪽을 answer에 repeat해서 채운다. 정답 function solution(X, Y) { X = X.split("").map(Number); Y = Y.split("").map(Number); let answer = ""; // 0부터 10까지의 숫자가 X, Y에 각각 몇..