본문 바로가기

728x90

JavaScript

[JavaScript] 1에서부터 주어진 숫자까지 홀수 구하기 (짝수는 싫어요) 프로그래머스 Day3의 마지막 문제이다. 이번에는 앞의 두 문제가 난이도가 있어서 그랬는지 매우 쉽게 풀었다. 짝수는 싫어요 문제 매개변수는 1~99 중 하나의 정수이다. 주어진 매개변수까지 홀수로 오름차순 정렬 된 배열을 return 한다. 문제풀이 방법 앞에 작성했던 몫값을 구하는 방법을 사용해서 문제풀이를 진행했다. 반복문을 만들어 충족되는 값이면 배열에 추가하는 방법이다. 1. n값만큼 증가하는 반복문을 만든다. 2. 안에 i % 2 = 1 을 충족하는 i를 answer의 배열에 push한다. function solution(n) { let answer = []; for (let i = 0; i 더보기
[JavaScript] 배열(Array)에서 최빈값 구하기 프로그래머스 LV0 Day3에 있는 최빈값 구하기 문제이다. 레벨0인데도 문제를 풀이하는데 1시간 이상의 시간을 소요하는 것 같다.. 자괴감이 든다 일단 내 수준에선 하나에 여러 기능을 한번에 담는것은 힘들어 하나씩 진행했다. 이번에도 문제를 풀어보고 기억하기 위해 풀이방법을 작성해보았다. 최빈값 구하기 문제 매개변수는 정수로만 이루어진 배열(Array) 이다. 주어진 매개변수에서 최빈값을 구해 return 한다. 최빈값이 여러개일 경우 -1을 return 한다. 문제풀이 방법 배열의 숫자와 개수를 기록할 수 있는 오브젝트를 만든 뒤 오브젝트의 value(개수) 중 가장 높은 값을 찾아 그 key(숫자)값을 반환한다. 그리고 반환 과정에서 최빈값이 2개 이상인지 확인한다. 1. 빈 오브젝트를 만든다. 2.. 더보기
[JavaScript] 배열(Array)에서 중앙값 구하기 프로그래머스 레벨0 문제를 풀기 시작했다. day3의 첫 번째 문제까지는 아주 쉽게 지나갔지만 이 문제부터 풀이에 시간이 걸리기 시작했으며 JavaScript에서 지원하는 기능을 사용하거나 for / if / while 등을 활용하여 문제를 풀어야 했다. 중앙값 구하기 문제 - 무작위로 입력된 홀수 길이의 배열에서 중앙에 위치한 값을 구한다. - 정수 배열만 주어진다. - 배열의 길이는 0 < Array < 100 - -1,000 < Array < 1,000 사이의 무작위 숫자 문제풀이 방법1 아래 방법은 배열을 크기로 정렬을 해준 뒤 양쪽 끝을 제거해가며 마지막 남은 중앙 값 하나를 남기는 방법으로 코드를 작성했다. 1. 무작위 숫자로 주어진 배열을 크기의 순서대로 정렬한다. 2. 배열의 길이를 계산하.. 더보기
[JavaScript] Promise대신 사용할 수 있는 async / await 2017년에 나왔고 ES6라고 할 수는 없고 ES8부터 Promise를 대신하여 사용할 수 있는 문법이 있습니다. async / await이라는 키워드입니다. 이 키워드는 Promise와 then을 더 쉽게 만들어주는 문법입니다. async / await async 키워드를 사용하면 Promise 오브젝트가 자동으로 생성됩니다. 이 키워드는 function 선언 앞에서만 붙일 수 있습니다. async function fc(){ 1+1; } function앞에 async를 붙임으로써 fc()는 Promise가 되었습니다. 이제 fc()는 then을 사용할 수 있습니다. async function fc(){ return 1+1; } fc().then(function(result){ console.log(re.. 더보기
[JavaScript] ES6 프로미스(Promise) 프로미스(Promise) 프로미스(Promise)는 성공하면 then()안의 코드를, 실패하면 catch()안의 코드를 실행해주는 함수 입니다. 동기방식을 비동기방식으로 바꿔주는 함수가 아닙니다. Promise 코드를 작성할 때 성공과 실패 상황을 알 수 있도록 해야 합니다. 콜백함수 디자인패턴이 마음에 안드는 분들은 Promise 디자인패턴을 사용하시면 됩니다. Promise는 자바스크립트의 새로운 기능이라기보다는 코드/함수 디자인 패턴일 뿐입니다. Promise의 구조는 이렇게 됩니다. var promise1 = new Promise(); promise1.then(function(){ // 프로미스가 성공했을 경우 실행할 코드1 }).then(function(){ // 프로미스가 성공했을 경우 실행할.. 더보기
[JavaScript] 동기 / 비동기처리와 콜백함수란 무엇인가? 동기(Synchronous) / 비동기(Asynchronous) 자바스크립트는 코드 한 줄씩 순차적으로 실행되는 동기(Synchronous)처리 방식입니다. 자바스크립트를 실행하는 웹브라우저는 스텍(Stack)이라는 코드 실행 공간이 있습니다. 그리고 그 곳에서 코드를 한줄한줄 차례로 실행합니다. 자바스크립트 뿐만 아니라 대부분의 프로그래밍 언어들이 이러한 특징을 가지고 있습니다. console.log(1); console.log(2); console.log(3); -------------------- 결과 1 2 3 그리고 자바스크립트는 비동기(Asynchronous)처리와 유사한 방식을 사용할 수도 있습니다. 예를들어 특정 위치의 코드를 1초 지연한 뒤 코드를 실행하고 싶을 때가 있습니다. 그래서 아.. 더보기
[JavaScript] 배열 디스트럭처링(Destructuring) - 구조 분해 할당 배열이나 오브젝트에 있는 자료들을 변수로 꺼내고 싶으면 어떻게 할까요? var a = arr[0]; 이런식으로 하나하나 뽑아오면 되겠죠. 하지만, 한 두개면 모르겠는데 다수의 값을 변수로 만들려면 위와 같은 방법으로는 코드가 매우 길어집니다. 그럴 때 Destructuring 문법을 사용하면 변수를 쉽게 만들 수 있습니다. 배열 방식 var arr = [2,3,4]; // 이 arr안에 있는 2,3,4를 각각 새로운 변수에 담아주고 싶을 경우, // 기본 방법 var a = arr[0]; var b = arr[1]; var c = arr[2]; // destructuring 방법 var [a, b, c] = [2, 3, 4]; 위와같이 변수명에도 배열형식으로 지정하여 각 위치에 맞게 값을 담아줄 수 있습.. 더보기
[JavaScript] getter와 setter 원본 데이터는 불변(Immutable)해야 한다는 원리로 데이터의 무결성 보존을 위해 사용되는 getter와 setter. 데이터를 수정하거나 출력할 때, 직접 원본 데이터를 만지는것이 아니라 함수를 사용하여 간접적으로 다루는것이 요즘 코딩의 추세이며 그 원리에 합치되는 코딩 기술 입니다. 아래 오브젝트 데이터를 만들어 보겠습니다. var People = { name : 'kim', age : 30 } console.log(People.age + 1); // 31 위 오브젝트에서 내년의 나이를 출력하고 싶으면 보통 어떻게 하게 될까요? people.age + 1 을 하면 됩니다. 하지만, 데이터의 무결성을 보존하기 위해서는 함수를 따로 제작하여 사용합니다. var People = { name : 'kim.. 더보기

728x90