js 39

[TypeScript] 타입스크립트와 자바스크립트의 차이

자바스크립트는 웹의 언어로써 빠르게 작성할 수 있고, 실행도 즉시 된다.그러나 프로젝트가 커지고, 팀원이 늘어나며, 코드가 오래 유지되어야 하는 순간부터 우리는 여러 질문들을 마주하게 된다. "이 함수는 정확히 어떤 값을 받는 거지?""이 객체에 이 속성이 정말 있는 게 맞나?" 이처럼 자바스크립트는 유연하지만, 이 유연함은 규모가 커질수록 예측 불가능성으로 바뀌기가 쉽다. 그리고, 타입스크립트는 바로 이 지점에서 등장하는 것이다. 1. 타입스크립트는 자바스크립트의 상위 집합이다.타입스크립트는 자바스크립트 위에 얹힌 확장 언어이다.즉, 모든 자바스크립트 코드는 타입스크립트에서도 그대로 동작한다. 예를 들어 아래와 같이 자바스크립트로만 이루어진 코드가 있다고 가정해보자.function greet(n..

[JavaScript] 프로그래머스 OX퀴즈

1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 풀이처음에는 문제를 가장 직관적으로 접근했다.문제에서 연산 기호와 숫자 사이에는 항상 공백이 존재한다고 했기 때문에 일단은 split을 통해서 토큰으로 분리해주었다. 예를 들어 아래와 같이 split을 해주면,"3 - 4 = -3".split(" ") 다음과 같이 분리될 것이다.["3", "-", "4", "=", "-3"] 여기서 보이듯이 수식의 형태는 항상 ` X [연산자] Y = Z` 형태로 고정되어 있기 때문에 각 요소의 위치 역시 항상 동일하다.피연산자 X 👉🏻 인덱스 0연산자 👉🏻 인덱스 1피연산자 Y 👉🏻 인덱스 2= ?..

[JavaScript] 프로그래머스 안전지대

1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 풀이이 문제는 지뢰가 있는 칸 뿐만 아니라, 그 지뢰를 기준으로 상하좌우 대각선까지 총 8방향으로 인접한 칸도 전부 위험지역으로 취급한다.그렇다고 이때 입력으로 들어온 board를 직접 바꿔버리면, 원래 지뢰가 아니었던 칸도 1로 변경되면서 다음 루프에서 지뢰로 착각할 수 있으니, 위험 여부를 기록하는 arr 배열을 새로 만들어서 문제를 풀어주어야 하는 것이 이 문제의 첫 번째 포인트이다.const n = board.length;const arr = Array.from(Array(n), () => Array(n).fill(0)); 이제 arr ..

[JavaScript] 프로그래머스 겹치는 선분의 길이

1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 풀이나는 문제에서 힌트로 제공해준 그림을, 아래와 같이 조금 다르게 해석해서 풀었다.주어진 선이 지나는 1칸짜리 구간을 칠한다는 관점에서 본건데, 문제 예시로 풀어서 말하자면 아래와 같다.[-3, -1]이라는 선은 (-3, -2) 사이와 (-2, -1) 사이를 지나므로 총 2개의 점이 찍히게 된다.[-2, 1]이라는 선은 (-2, -1), (-1, 0), (0, 1) 사이를 지나므로 총 3개의 점이 찍히게 된다.[0, 2]라는 선은 (0, 1), (1, 2) 사이를 지나므로 총 2개의 점이 찍히게 된다. 그리고 문제에서 두 개 이상의 선분이 겹..

[JavaScript] 프로그래머스 평행

1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 풀이문제에서 항상 4개의 점이 주어진다고 했으므로, 이 점들을 각각 a, b, c, d라 가정해보자.이 네 개의 점들을 두 개씩 나누는 방법은 사실 단 3가지 뿐이다.(a, b) & (c, d)(a, c) & (b, d)(a, d) & (b, c)즉, 우리는 위 세 가지 경우에 대해서 각 선분이 평행한지 여부만 확인하며 되는 것이다. 2.1. 기울기를 이용한 평행 판별두 직선이 평행하다는 것은 기울기가 같다는 의미이다. 보통 기울기는 위의 공식을 이용하여 구하므로, 우리는 두 기울기가 같은지를 아래와 같이 판단해야 한다. 하지만 나눗셈은 경..

[JavaScript] 프로그래머스 모스부호 (1)

1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 풀이 1) 객체로 매핑하기처음에는 문제 설명에 모스부호 표를 그대로 객체로 만들어 둔 것을 보고, 딕셔너리로 풀면 되겠다고 생각하고 코드를 완성했었다.function solution(letter) { const mos = [ ".-","-...","-.-.","-..",".","..-.","--.","....","..",".---", "-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-", "..-","...-",".--","-..-","-.--","-..

[JavaScript] 프로그래머스 분수의 덧셈

1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 풀이너무 오랜만에 보는 문제 유형이라 갑자기 뇌정지가 왔지만 ,,가물가물 기억을 더듬으며 4년 전에 배웠던 유클리드 호제법을 활용해서 풀었다.function solution(numer1, denom1, numer2, denom2) { const ans = []; let denom = denom1 * denom2; let numer = numer1 * denom2 + numer2 * denom1; let a = denom; let b = numer % denom; while(b !== 0){ ..

[JavaScript] Array.prototype.map()

1. map()우리는 배열을 다루다 보면 아래와 같은 요구 사항을 갖고 있는 경우가 많다.숫자 배열을 전부 2배로 만들어야 한다.문자열 배열을 전부 대문자로 바꿔야 한다.객체 배열에서 name만 뽑아서 새로운 배열로 만들고 싶다.서버에서 받은 데이터를 UI에서 쓰기 좋은 형태로 바꾸고 싶다.이런 작업들은 모두 공통점이 있는데, 원본 배열은 그대로 두고, 가공된 결과만 따로 새 배열로 만들고 싶다는 것이다. map 메서드는 위의 목적에 딱 맞게 만들어진 것이다.왜냐하면 배열의 각 요소를 하나씩 방문하면서 그 칸의 값을 새 값으로 바꿔서 새 배열의 같은 위치에 넣어주는 역할을 해주기 때문이다.즉, 원본 배열의 0번째를 새 값으로 바꿔서 새 배열의 0번째에 넣어주고, 원본 배열의 1번째도 새 값으로 바꿔서 ..

[JavaScript] 프로그래머스 가위 바위 보

1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 풀이function solution(rsp) { const win = [ 5, , 0, , , 2 ]; let ans = ""; for(let i = 0; i 가위바위보 규칙은 다들 알겠지만 .. 다음과 같다.rsp나0 (주먹)5 (보)2 (가위)0 (주먹)5 (보)2 (가위) 이 규칙은 변할리가 없는 것이니, 나는 정답을 미리 배열에 매핑해두고 바로바로 꺼내서 사용하는 방식을 생각해냈다.const win = [5, , 0, , , 2]; 이렇게 해둠으로써, 다음과 같이 rsp가 낸 거에 따라 내가 이길 수 있는 숫자를..

[JavaScript] 프로그래머스 옹알이 (1)

1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 풀이function solution(babbling) { let cnt = 0; for(let i = 0; i 처음엔 '가능한 모든 조합을 생각해내야 되나,' '한 글자씩 순회하면서 체크해야 되나' 고민을 많이 했었다 ..그러다 그냥 잠깐 접어두고 케이크 먹으면서 앱 업데이트를 위해 간단한 코드 수정을 하고 왔는데 !!우연치 않게 내 프로젝트 코드에서 힌트를 얻게 됐다 ㅎㅎ 이 문제의 궁극적인 목표는 "문자열이 특정 패턴들로만 구성되어 있는지"를 판별하는 문제이기 때문에 그냥 정규식을 활용하면 훨씬 직관적으로 해결할 수 있..