본문 바로가기

programming study

(889)
[프로그래머스] 오픈채팅방 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) // 오픈채팅방 function solution(record) { let answer = []; // 유저 아이디를 저장하는 해시 const userId = {}; // 유저 아이디가 최종으로 적용되기 전의 임시 메시지 배열 const tempMessageArray = []; // 유저의 입장, 퇴장에 따른 문구 const enterAndLeave = { Enter: '님이 들어왔습니다.', Leave: '님이 나갔습니다.' }; // record를 하나씩 접근하여 최종 유저 닉네임 찾기 for (let re of record) { const [state, uid, nickName] = re..
[프로그래머스] 카펫 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) // 카펫 function solution(brown, yellow) { let answer = []; // yellow, brown의 가로, 세로길이를 찾아내기 let yellowWidth = 0; let yellowHeight = 0; for (let i = 1; i 0) { continue; } yellowHeight = yellow / yellowWidth; // borwn의 갯수가 맞는지 확인 if ((((yellowWidth * 2) + 4) + (yellowHeight * 2)) === brown) { if (yellowWidth >= yellowHeight) { answer.p..
[프로그래머스] 소수 찾기 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) // 소수 찾기 // 순열을 만드는 함수 function makePermutations(arr, select) { // 순열 const permutations = []; // 1개를 택하면 모든 원소를 return if (select === 1) return arr.map((value) => { return [value] }); arr.forEach((fixed, index, origin) => { // 매 루프에서의 fixed(value)를 제외한 나머지 원소들의 배열 const rest = [...origin.slice(0, index), ...origin.slice(index + 1)]..
[프로그래머스] 모의고사 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) // 모의고사 function solution(answers) { let answer = []; // 1번 수포자 ~ 3번 수포자 const oneSupo = [1, 2, 3, 4, 5]; const twoSupo = [2, 1, 2, 3, 2, 4, 2, 5]; const threeSupo = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]; // 각 수포자가 몇점인지 체크 const oneSupoScore = answers.filter((value, index) => { return value === oneSupo[index % oneSupo.length] }).length; co..
[프로그래머스] H-Index - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) // H-Index function solution(citations) { let answer = 0; // 오름차순 정렬 citations.sort((a, b) => a - b); console.log(citations) // 정렬한 배열을 하나씩 접근 for (let i = 0; i < citations.length; i++) { // 주어진 논문의 인용된 횟수 const citation = citations[i]; // 인용 횟수 const citationCount = citations.length - i; console.log(citation, citationCount) if (cit..
[드림코딩 by 엘리] JavaScript 기초 강의(11) (ES5+) 본 내용은 해당 강의 토대로 작성 Promise JavaScript에서 제공되는 비동기를 간단하게 처리할 수 있는 Object 콜백함수 대신 사용할 수 있다. Promise 안에서는 무거운 일을 수행하게 된다. 네트워크에서 데이터를 받아오거나 파일에서 큰 데이터를 읽는 과정을 수행하는 것을 동기적으로 처리하면, 다음 코드가 실행되지 않으므로 비동기 처리를 하는 것이 좋다. state 상태 process가 동작을 수행중인지, 완료되어서 성공 또는 실패했는지 producer / consumer 정보 제공자 / 소비자 1. state pending -> fulfilled or rejected pending: operation을 수행 중 fulfilled: operation을 완료하고 성공 rejected: o..
[드림코딩 by 엘리] JavaScript 기초 강의(10) (ES5+) 본 내용은 해당 강의 토대로 작성 callback 나중에 다시 불릴 전달되는 함수 arrow function으로 간단하게 전달 1. 동기와 비동기 동기 JavaScript is synchronous. 자바스크립트는 동기적이다. hoisting된 이후부터 코드가 순서에 맞춰 동기적으로 실행된다. hoisting: var, function decalaration이 자동으로 제일 위로 올라감 비동기 언제 코드가 실행될 지 예측할 수 없는 것 setTimeout: web API 브라우저에서 제공 지정된 시간이 지나면 callback 함수를 실행 console.log('1'); setTimeout(() => console.log('2'), 1000 ); console.log('3'); // 1 3 2의 순서로 출..
[프로그래머스] 가장 큰 수 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) // 가장 큰 수 function solution(numbers) { // number의 요소를 string화 const numbersString = numbers.map((num) => String(num)); // 정렬하기 numbersString.sort((a, b) => { // b + a숫자와 a + b 숫자를 비교해서 내림차순으로 정렬 return parseInt(b + a) - parseInt(a + b); }) // 만들어진 배열 문자열화 const answer = numbersString.join(''); return answer[0] === '0' ? '0' : answer..