Array (12) 썸네일형 리스트형 [프로그래머스] x만큼 간격이 있는 n개의 숫자 - 자바스크립트 문제 설명 문제 풀이 function solution(x, n) { let answer = []; for(let i = 1; i [프로그래머스] 평균 구하기 - 자바스크립트 문제 설명 문제 풀이 function solution(arr) { let answer = 0; for(let i = 0; i (a + b)) / arr.length; } 실행 결과 코드 채점하고 제출 [프로그래머스] 문자열 내림차순으로 배치하기 - 자바스크립트 문제 설명 문제 풀이 function solution(s) { let answer = ''; answer = s.split('').sort().reverse().join(''); return answer; } sort((a, b) => a - b) 는 대문자를 뒤로 배치하기 때문에 그냥 sort()를 적용한 후 reverse메서드를 통해 거꾸로 돌렸다. 여기서 더 코드를 줄이고 싶다면 아래 코드처럼 하면 된다. function solution(s) { return s.split('').sort().reverse().join(''); } 실행 결과 코드 채점하고 제출 [프로그래머스] 문자열 내 p와 y의 개수 - 자바스크립트 문제 설명 문제 풀이 function solution(s) { let p = s.toLowerCase().split('p').length; // p문자열을 ''로 반환해준다. let y = s.toLowerCase().split('y').length; // y문자열을 ''로 반환해준다. return p === y ? true : false; } 위 코드는 처음 문제를 풀었을 때 작성한 코드이다. split('string')을 쓰면 원하는 string의 문자는 사라진다. 그래서 그 것의 길이를 비교하면 된다고 판단했다. 아래 코드는 위 코드를 한 줄로 코드를 만들어 보았다. function solution(s) { return s.toLowerCase().split('p').length === s.toLo.. [프로그래머스] 문자열 내 마음대로 정렬하기 - 자바스크립트 문제 설명 문제 풀이 function solution(strings, n) { return strings.sort((a, b) => a[n] === b[n] ? a.localeCompare(b) : a[n].localeCompare(b[n])); } string메서드 중 하나인 localeCompare를 array 정렬 메서드인 sort메서드에 넣어서 문제를 풀었다. localeCompare메서드는 문자열과 문자열을 비교하는데 사용된다. 아래에 예제를 하나 들어보곘다. 'a'.localeCompare('b'); // -1 'b'.localeCompare('a'); // 1 'b'.localeCompare('b'); // 0 'a'.localeCompare('a'); // 0 이런 식으로 -1, 0, 1을.. [프로그래머스] 두 정수 사이의 합 - 자바스크립트 문제 설명 문제 풀이 function solution(a, b) { const number = []; for(let i = -10000000; i { return prev + curr; }, 0); } } 이번 문제는 하드코딩처럼 짜 봤다. 제한 조건은 딱히 상관없는 것이었지만 그것들을 의식한다는 느낌으로 짜 봤다. 사실 연습문제를 거의 처음 풀어봤을 때 코딩한 것이라 하드코딩이 되었다. 또한 reduce메서드를 써보고 싶었다. 아래 코드는 다른 방식의 풀이 법이다. 훨씬 코드도 간단하고 보기 쉬운 것같다. function adder(a, b, c = 0){ for (let i = Math.min(a, b); i [프로그래머스] 나누어 떨어지는 숫자 배열 - 자바스크립트 문제 설명 문제 풀이 function solution(arr, divisor) { let answer = []; for(let i = 0; i (a - b)); }; 이번 문제는 생각하기 비교적 쉽다. 실행 결과 코드 채점하고 제출 [프로그래머스] 같은 숫자는 싫어 - 자바스크립트 문제 설명 문제 풀이 function solution(arr) { return arr.filter((x, i) => x !== arr[i + 1]); }; filter메서드를 통해 arr안에 있는 x가 x다음 번 요소와 같지 않은 것들을 반환하는 알고리즘을 만들었다. 실행 결과 코드 채점하고 제출 [프로그래머스] K번째수 - 자바스크립트 문제 설명 문제 풀이 function solution(array, commands) { let fir = []; let sec = []; let answer = []; for(let a = 0; a a - b); answer.push(sec[k - 1]); } return answer; } 문제의 예시에 맞게 fir, sec에 임시로 값을 담고 마지막 answer에 집어 넣었다. 실행 결과 코드 채점하고 제출 [JavaScript] Stack(스택) 자바스크립트에서는 배열 메서드가 정의가 되어 있어 딱히 구현한 필요는 없지만 c언어 같은 로우레벨의 언어에서는 함수들을 정의해줘야 스택의 개념을 쓸 수 있다. 비록 자바스크립트이지만 자료구조의 이해를 위해 해당 개념을 직접 구현해 보려고한다. Stack의 개념 스택은 LIFO(Last In First Out)의 특징을 가지고 있다. 즉, 아래 그림과 같이 맨 마지막으로 들어갈 f가 제일 처음 꺼내어 진다는 이야기이다. 스택의 최대 단점으로는 제일 먼저 들어간 데이터를 꺼낼 때 모든 데이터를 연산해야한다는 것이다. 데이터 a를 빼내고 싶다면 f, e, d, c, b를 차례대로 꺼낸 후 a를 꺼내고 다시 b, c, d, e, f 순으로 집어 넣어야 한다. Stack 구현 1. stack이라는 class만들어.. [JavaScript] List - Linked List(연결 리스트) 리스트 자료구조는 데이터를 나란히 저장하며 중복된 데이터 또한 저장이 가능하다. 리스트 자료구조는 구현방법에 따라 Array List(배열 리스트)와 Linked List(연결 리스트)로 나눌 수 있다. 자바스크립트의 배열은 배열의 크기를 데이터 추가/제거와 동시에 자동적으로 정의가 된다. 하지만 c언어, java 등과 같은 언어들은 배열의 크기가 자동적으로 늘어나거나 줄어들게 하는 기능이 없기 때문에 배열을 사용하는 범위가 한정되어 있다. 따라서 노드라는 개념으로 구조체들을 서로 연결하는 리스트 개념을 만들어 활용하는 것이 효율적이다. Array List(배열 리스트)의 개념 배열 리스트는 어떤 언어에서도 기본적으로 내장된 데이터 타입이다. 따라서 가장 사용하기 쉽다. 물리적으로 고정되어 있다고 볼수있.. [JavaScript] Array(배열) 자료구조를 이해하기 위해 처음으로 알아야 하는 것은 배열(Array)이라고 생각합니다. 배열의 자세한 내용과 정의는 MDN web docs에서 더욱 자세히 볼 수 있지만 제가 공부한 배열에 대해서 간단히 정리해보려고 합니다. 배열의 구성 배열은 인덱스 번호가 0번 부터 시작한다. 길이는 0이 아닌 1부터 시작한다. 인덱스 번호와 길이는 다르다는 것을 주의해야 한다. javascript 배열 선언 방법 javascript는 배열을 선언할 수 있는 두 가지 방법을 가지고 있다. ////////////// 1. 생성자 함수로 배열 선언 ///////////////// // 빈 배열 생성 let arr = new Array(); // 빈 배열에 값 넣기(문자열) arr[0] = 'one'; arr[1] = 't.. 이전 1 다음