Programming 65

[알고리즘] 로또의 최고 순위와 최저 순위

프로그래머스에서 문제 보기 My Solution / Try function solution(lottos, win_nums) { let count = 0 let zeroCnt = 0 //당첨 번호 배열 반복문을 돌며 내 번호가 있다면 count++ //0의 개수만큼 zeroCnt++ for (let i = 0 ; i < win_nums.length; i++) { if (lottos.includes(win_nums[i])) { count++ } if (lottos[i] === 0) { zeroCnt++ } } //객체를 활용해 맞춘 개수를 키로, 순위를 벨류로 지정 let obj = { 0 : 6, 1 : 6, 2 : 5, 3 : 4, 4 : 3, 5 : 2, 6 : 1 } let countPlus = (c..

Programming 2023.06.26

[TIL] 자료구조 Map, Set

Map과 Set은 비교적 최근에 등장한 자료구조(ES6)로 데이터의 구성, 검색, 사용을 보다 효율적으로 처리하기 위해 등장 Map Key / Value 페어를 저장 Key에 어떤 데이터타입도 다 들어올 수 있음 (객체와의 가장 큰 차이) set / get 메서드는로 설정 / 불러오기 const myMap = new Map(); myMap.set('one','1'); myMap.set('two','2'); myMap.set('three','3'); console.log(myMap.keys()) for(const key of myMap.keys()) { console.log(key); } // one two three 출력 // iterator 활용 console.log(myMap.size) // => 3..

Programming 2023.06.26

[TIL] 숫자야구게임

Problem 랜덤으로 생성된 수의 중복을 없애는 로직에 대한 고민 VS Code 프로그램 터미널을 통해서만 확인할 수 있도록 개발시간을 줄이는 방법에 대한 고민 Try & Solution Math.random() 메서드를 사용하여 랜덤한 수를 생성했지만 중복을 제거하기 위해 indexOf를 사용 let arr = [] while (arr.length < 3) { let ran = Math.floor(Math.random()*10) if(arr.indexOf(ran) < 0) { arr.push(ran) } } VS Code에서 작성한 코드를 웹사이트를 열고, 개발자 도구를 열어가며 디버깅하는 중에 페어분이 터미널에 입력값을 받아가며 코딩하는 것을 참고함 require 함수를 통해 readline 모듈을..

Programming 2023.06.26

[JS] 호이스팅(Hoisting)

호이스팅이란 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미, 변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 옮기는 것. 쉽게 말하면 선언되지 않은 변수나 함수를 끌어올려서 사용해버리는 것. catName("클로이"); function catName(name) { console.log("제 고양이의 이름은 " + name + "입니다"); } /* 결과: "제 고양이의 이름은 클로이입니다" */ (이 경우 호이스팅이 발생했다고 한다) 위 코드는 에러가 나와야 정상이지만 Javascript에서는 동작한다. Javascript는 느슨한 제약을 가진 언어이다. 호이스팅이 발생한 코드는 가독성이 떨어지고 유지보수를 어렵게한다. 특히 var을 사용하면 호이스팅이 일어날 확률이 높다...

Programming 2023.06.26

[개발 환경] Node.js , VS Code (+ extension)

1. Node.js 설치 https://nodejs.org/ko/download Node.js는 JavaScript로 브라우저 밖에서 서버를 구축하는 등의 코드를 실행할 수 있게 해주는 런타임 환경 /* Node.js 버전 확인 */ node -v 2. VS Code 설치 https://code.visualstudio.com/ VS Code Extension 1. ESLint JavaScript, JSX의 정적 분석 도구로 오픈 소스 프로젝트 코드를 분석해 문법적인 오류나 안티 패턴을 찾아주고 일관된 코드 스타일로 작성하도록 도움 2. Live Server 코드 수정으로 웹사이트의 변화를 실시간으로 확인 가능 3. Prettier 사용자 옵션에 따라 코드를 정렬 4. open in browser 웹페이..

Programming 2023.06.26