전체 글 70

[알고리즘] 프로그래머스 숫자 문자열과 영단어

프로그래머스 문제 링크 My Solution / Try 객체의 키/밸류를 활용 !isNan()을 활용해 숫자인지 아닌지 판별 function solution(s) { let obj = { 'zero': '0', 'one': '1', 'two': '2', 'three': '3', 'four': '4', 'five': '5', 'six': '6', 'seven': '7', 'eight': '8', 'nine': '9', } let result = '' let str = '' for(let i = 0; i < s.length; i++){ if(!isNaN(s[i])){ result += s[i] continue; } else { str += s[i]; if(obj[str]){ result += obj[str]..

Programming 2023.06.26

[알고리즘] 프로그래머스 신규 아이디 추천

프로그래머스 문제 링크 My Solution / Try 지금까지 공부한 반복문, 조건문을 복습하기 위해 정규표현식을 사용하지 않은 풀이 (정규표현식을 이용한 풀이는 아래 Advanced Solution) 조건2(사용불가능한 특수문자를 전부 제거하기)와 조건3(2번 이상 연속된 마침표를 하나로 치환)이 특히 까다로웠음 '사용불가능한 특수문자 제거'는 filter와 includes를 사용, 문자열에 사용불가능한 특수문자의 요소가 존재하지 않는 것들만 필터링 '2번 이상 연속된 마침표 하나로 치환'은 반복문을 사용(stack의 개념 차용) 직전 인덱스와 비교해서 중복되지 않는 경우에만 추가 function solution(조건) { let 특수문자 = "-_.~!@#$%^&*()=+[{]}:?,/" let 가..

Programming 2023.06.26

[Javascript] ES6란 무엇인가(ES5와의 차이)

ECMAScript 6(ES6) ECMAScript 는 JavaScript 프로그래밍 언어가 사용하는 표준 2015년에 출시되었기 때문에 ECMAScript 2015로도 알려져 있음 (ES5는 2009년) ES5 와 ES6의 차이 변수 재선언, 재할당이 모두 가능해 문제를 야기하는 var에서 let과 const가 추가됨 객체 정의 키와 변수 이름이 같을 때 객체를 정의하는 쉬운 방법을 제공 var fullName = 'John Moore'; var age = 25; var gender = 'Male'; var city = 'London' // ES5 var student = { fullName: fullName, age: age, gender: gender, city: city }; // ES6 var ..

Programming 2023.06.26

[WIL] week1 회고

Keep 시간 철저하게 지키며 계획된 시간에 공부하기 1일 1시간 알고리즘 문제 풀이 React 선행학습 Problem 집중력이 오래가지 못하고 수면시간이 과함 계획한 타입스크립트 공부가 지체됨 휴일에 낮아지는 집중력 Try(우선순위) 그날 모르는 것 그날 완벽하게 이해하고 넘어가기 (고민하다 막히는 문제는 기술매니저님이나 스택오버플로우 활용) React, 타입스크립트 1시간 이상 공부하기 하루 한시간씩 꾸준히 운동하기 잠을 줄이고 휴일에 마음 다잡기 (시간표대로 움직이기) 첫주차를 마치며 강의와 과제 모두 이미 알고있는 개념들이 많다보니 집중력을 잃고 흐트러지는 시간이 많았다. 시간표대로 체계적으로 움직이자. Rough Schedule 7:00~8:00 운동 8:00~9:00 알고리즘 9:00~21:0..

Programming 2023.06.26

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

프로그래머스에서 문제 보기 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