문제 https://school.programmers.co.kr/learn/courses/30/lessons/120890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 가장 가까운 수를 어떻게 찾을까 고민하다가 첫번째로 든 생각.. 우선, 해당 숫자를 배열에 추가한 후 정렬한다. 앞, 뒤 숫자를 비교한 후 더 가까운 수를 리턴한다. 코드로 정리해 보자 1. 해당 숫자를 포함한 배열을 오름차순으로 정렬한다. 2. 해당 숫자의 위치(인덱스)를 찾아 앞, 뒤 숫자를 구한다. 이때 앞, 뒤의 값이 없을 경우를 대비해 0을 할당해준다. 3. 0이 들어올 경우..
전체 글
console.log("빔네모")문제 https://school.programmers.co.kr/learn/courses/30/lessons/181862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 해당 문자열을 정규식을 이용해 abc를 탐색 후 공백으로 치환한다. 공백기준으로 문자열을 쪼갠 후 => 공백을 필터링해서 제거한다. 만약 문자열의 길이가 0이라면, 조건대로 empty를 리턴해준다. 해당 문자에서 a,b,c를 어떻게 찾느냐..가 문제의 쟁점인거 같다. function solution(myStr) { const str = myStr .replace(/[abc]/g, " ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 조건을 정리해보자 1. flag[i] 값이 true면 arr[i]을 arr[i]*2번 추가 2. flag[i] 값이 false라면 마지막 arr[i]개의 원소를 제거 arr 배열을 돌면서 플래그 값을 검사해 플래그 값이 true인 경우에는, arr[i]의 두배한 수만큼 arr[i]를 추가해준다. 반대로 false인 경우에는 splice를 이용해 잘라내어준다. (slice는 원본을 그대..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 특정 문자를 잘라낸 후 뒤집어 주고, 그 문자의 앞, 뒤를 잘라내서 합쳐주었다. function solution(my_string, s, e) { const reverseStr = my_string .slice(s, e + 1) .split("") .reverse() .join(""); return my_string.slice(0, s) + reverseStr + my_string.s..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181912 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 우선 배열을 k부터 시작해서 s 길이까지 잘라내야 해야한다. substr을 사용하면 길이만큼 잘라낼 수 있지만, 사용을 지양하는 추세이기 때매 slice로 잘라내었다. (substr은 하나 이상의 바람직하지 않은 특징을 갖고 있으며 사용처가 없어질 경우 명세에서 제거될 예정 -ECMA-262) 시작부터 길이만큼 잘라내기 위해서는 시작 위치에 그 길이를 더 해주면 된다. slice는 두..
책 소개이 책은 IT 업계에 입문하는 ‘신입 엔지니어’나 ‘비IT 엔지니어 대상으로 ‘웹’에 관해 기본적인 개념을 설명합니다. 웹이란 무엇인가라는 역사에서 시작해, 웹과 밀접한 관계가 있는 인터넷/네트워크와의 관련성, HTTP 통신과 데이터 형식, 웹 애플리케이션/시스템의 기본적인 구성, 보안 고려 등 웹에 관한 다양한 요소를 체계적으로 다룹니다.또한 이 책에서는 한 페이지에 하나의 주제를 다룹니다. 그 한 페이지의 주제를 문장과 그림으로 설명합니다. 개념적인 부분은 문장뿐만 아니라 그림을 함께 보면 쉽게 이미지를 그릴 수 있을 것입니다.이 책에서 다루는 범위는 어디까지나 입문 수준의 내용으로 국한합니다. 그러나 체계적인 지식을 처음부터 학습해 두면 이후 다양한 업무를 익히는 데 큰 힘이 될 것입니다. ..
1. Interface란?인터페이스는 객체, 클래스, 함수 타입을 지정하는 또 다른 방법 중 하나이다. //객체 타입을 지정하는 여러가지 방법let person: { name: string; age: number } = { name: 'John', age: 30 };type TPerson = { name: string; age: number };let person: TPerson = { name: 'John', age: 30 };interface IPerson { name: string; age: number;}let person: IPerson = { name: 'John', age: 30 }; 보통 인터페이스는 I 를 붙여 명명한다.interface I인터페이스_이름 { 속성?: 타입;} 2...
1. Intersection TypeIntersection Type(교차 타입)은 TypeScript에서 두 개 이상의 타입을 합치는 방법 중 하나이다. `& 연산자`를 사용하여 여러 타입을 하나로 합친다. 합쳐진 타입은 모든 타입의 특성을 가지게 된다. interface Car { brand: string; speed: number;}interface Electric { battery: number;}type ElectricCar = Car & Electric;const myCar: ElectricCar = { brand: 'Tesla', speed: 200, battery: 75,};//이렇게도 가능type PositionX = { x: number };type PositionY = { y..
어떤 값에 대해 불변성을 갖도록 만들어주고 싶다면, readonly 타입으로 보호장치를 설정해 줄 수 있다. 타입스크립트에서 readonly 키워드는 변수, 객체, 배열 등에 사용되며 해당 요소를 읽기 전용으로 만든다. 값을 할당한 후에는 값을 변경할 수 없게 된다. (어디까지나 에디터 에러일 뿐 실제 자바스크립트 파일은 변경) type Player = { //대문자로 만들기 readonly name: string, //읽기 전용으로 설정}const nemo: Player = { name: "nemo",};nemo.name = "다른이름" //오류, 읽기전용이라 변경 불가const numbers: readonly numbers[] = [1,2,3]numbers.push(1) //오류let arr: R..
1. Type Aliases (별칭)Type Aliases(타입 별칭)는 TypeScript에서 타입을 새로운 이름으로 지정할 수 있다. 코드를 더 읽기 쉽고 재사용성이 높게 만들 수 있어 주로 복잡한 타입이나 반복되는 타입 정의를 간결하게 표현할 때 유용하다.type Animal = string | number | undefined;let 동물 :Animal;type Age = numbertype Player = { //대문자로 만들기 name: string, //별칭 만들기 age?: Age, //타입 지정한걸 가져오는것도 가능}//별칭을 그대로 지정해주기const nemo: Player = { name: "nemo", //age: 12};//대문자 또는 TAge 이런식으로 변수명 지정 함수에서..