분류 전체보기 249

immer를 사용해서 불변성을 지켜야하는 이유와 얕은 복사의 개념

immer 란? React에서 불변성을 유지하느라 난잡해진 코드를 짧고 간결하게 불변성을 유지할수 있게 도와주는 라이브러리이다. 반대로 immer 사용함으로 짧은 코드가 길어지는 경우도 있다. 불변성 개념 불변성이란 기존의 상태 값을 유지하면서 새로운 상태 값을 추가하는 것을 의미한다. 불변성을 지키는 이유 만약에 list OR 상태 값을 리렌더링 하고 싶을때가 있다고 가정한다. state.push({ title: "값 추가" })을 통해서 배열에 직접 10이라는 값을 추가한다. React에서는 해당 state라는 값은 새로운 참조값으로 바뀐것이 아니기 때문에 push 이전에 값가 push 이후에 값에 state 참조하는 메모리값이 같다고 판단하여 리렌더링이 일어나지 않는다. 이러한 이유로 state 값..

React 2024.01.05

프론트엔드 꼭 필요한 디바운싱과 쓰로틀링 중요 개념

디바운스와 쓰로틀링 모두 웹에서 발생하는 이벤트를 제어하는 방법이다. 예를 들어 스크롤 이벤트의 경우 스크롤링 할 때마다 발생하는데, 그 때마다 같은 작업을 실행하게 되면 성능 문제가 발생할 수 있다. 디바운스와 쓰로틀링을 적절한 상황에서 사용하여 그런 상황이 발생하지 않도록 막을 수 있다! 목록으로가기 or 버튼 이벤트에서 여러번 클릭하면 여러번에 이벤트가 일어나면서 예측할 수 없는 다음 액션이 일어날수도 있다. ex: 목록으로가기 이벤트가 router.back()을 2번 누르면 history 2번째 stack 페이지로 이동하는 경우도 있다. 디바운싱과 쓰로틀링은 성능을 목적으로 자바스크립트의 이벤트를 제어하기 위해 사용되는 기법이다. 디바운싱 (Debouncing) 연속으로 호출되는 함수들 중에 마지..

ITstudy 2024.01.03

1분만에 나만의 QR 만들고 QR 코드 소문내기

QR코드(QR CODE)란? 기존에 사용되던 바코드형태에서 발전한 흑백 격자무늬 패턴 코드이며, 정보를 나타내는 매트릭스 형식의 이차원 코드이다. 기존의 바코드 형태의 용량 제한에서 벗어나 형식과 내용을 확장하여 2차원의 패턴으로 정보를 저장하여 숫자 외에 문자의 데이터도 저장할 수 있다. 일반적으로 디지털카메라나 전용 스캐너로 읽어 활용하고, 근래에는 핸드폰을 이용하여 대중적으로 사용되고 있다. QR코드의 명칭은 덴스 웨이브가 등록한 상표인 'Quick Response'에서 유래되었고, 주로 한국, 일본, 중국, 영국, 미국 등에서 많이 사용된다. QR코드(QR CODE)의 장점 QR코드의는 누구라도 다양한 목적으로 쉽게 제작하여 사용할 수 있다. 그리고 많은 양의 데이터와 정보를 넣을 수 있지만 코드..

ITstudy 2023.12.26

SEO 최적화 블로그 글자수 꿀팁

SEO(Search Engine Optimization, 검색 엔진 최적화)에서 추천하는 블로그 글자수 상세한 내용 제공: 글자수가 많을수록 더 많은 키워드를 포함시킬 수 있고, 주제에 대해 더 상세하게 설명할 수 있습니다. 이는 검색 엔진이 블로그 글의 주제를 더 정확하게 이해하는 데 도움이 됩니다. 독자의 관심 유지: 너무 긴 글은 독자가 중간에 지치거나 관심을 잃을 수 있습니다. 따라서, 글의 길이를 적절하게 유지하면서 독자의 관심을 유지하는 것이 중요합니다. 고질적인 내용: 글자수가 많을수록 주제에 대해 더 깊이 있는 분석이 가능하며, 이는 블로그가 전문성을 갖추는 데 도움이 됩니다. 검색 엔진 순위: 더 긴 글은 일반적으로 검색 결과에서 더 높은 순위를 차지하는 경향이 있습니다. 이는 검색 엔진..

ITstudy 2023.12.24

모든 브라우저 복사 금지 되어있는 글 복사 방법

모든 브라우저 복사 금지 되어있는 글 복사 방법 글을 쓰거나 수정하다 보면 정말 필요한 내용이나 정보를 복사해야 되거나 복사한 글을 다시 한번 가공해야 될 때가 많습니다. 간혹 중요한 내용이나 정보를 복사 하려는데 복사 방지 or 복사 금지가 되어 있는 경우에 복사 할수 있는 유용한 방법을 알려드겠습니다. 전 세계 3대 웹 브라우저 (크롬, 파이어폭스, 엣지) 더해서 네이버웨일, 사파리에서 모두 똑같이 사용 할 수 있는 방법입니다. 1. 브라우저에서 복사할 내용이 있는 웹페이지로 이동합니다. 2. F12(개발자 도구)를 누르면 아래 이미지 처럼 소스를 볼 수 있는 창이 뜬다. 3. 빨간색으로 표시한 부분의 아이콘을 클릭합니다. (항상 Elements가 선택되어 있어야 합니다) 4. 화면에 커서를 옮기면 ..

ITstudy 2023.12.20

내 아이피 확인 (My IP Address) 안전하고 빠르고 쉽게 아는 방법

빠르고 쉽게 내 IP 주소를 확인하는 방법 브라우저 즐겨찾기를 통해 빠르게 확인하는 것은 IP주소를 확인하는 가장 쉽고 빠른 방법 중 하나입니다. webtool.everyday-365.com 개인정보 수집 없이 안전하게 현재 접속한 기기의 공인 IP(Internet Protocol) 주소를 제공합니다. 내 아이피 바로 찾기 IP, IP 주소란? IP란 인터넷 프로토콜(Internet Protocol)의 약자로 인터넷에 연결되어 있는 장치를 식별하기 위해 각각의 장비에 부여하는 고유 주소입니다. 데이터를 주고 받기 위해서 데이터를 발신하는 곳과 수신하는 곳이 필요합니다. 통신을 위해 부여한 주소가 IP 주소(Internet Protocol Address)입니다. 공인IP와 사설IP IP는 사용자 입장에서 ..

ITstudy 2023.12.18

git clone -- recursive 옵션의 의미

💡 git clone -- recursive 무엇인가? 위에 프로젝트는 Lerna를 활용한 모노레포 프로젝트 저장소이다. 위 오픈소스를 clone 할때 --recursive 옵션을 추가 해야 한다고 나와있다. 해당 옵션을 설정 안하고 clone 하게 되면 WIGOEditor 폴더 아래는 비워진 폴더로 clone 이 된다. 그래서 해당 옵션을 설정함으로 하위 서브 모듈에 까지 clone한다. 💡 서브 모듈이란? 서브 모듈은 기존 저장소 하위에 다른 저장소가 존재한다는 것이다. 그것은 .git 파일이 있음으로 저장소를 확인할 수 있다. 상위에 .git 과 하위에 .git 파일 2개 존재하는 것을 확인할 수 있다. ex: 아래와 같이 한개의 프로젝트에 2개의 .git 파일을 볼수 있다. git clone 사용..

Git 2023.07.13

보일러플레이트(Boilerplate code)란? - 개념, 필요한 이유

👋 보일러 플레이트란? 코딩을 하다 보면 의미 없는 코딩을 할 때도 있고 불필요한 작업에 때문에 업무 생산성이 떨어지는 경우가 있습니다. 이럴 경우를 대비해 보일러 플레이트로 기본적인 골격을 미리 만들어서 업그레이드하는 방식이며 불필요한 코드와 생산성을 높일 수 있는 방법이다. 개발자에게 보일러 플레이트 란? 코딩에서 보일러 플레이트는 개발자에게 꼭 필요한 요소이다. 직접 타이핑, 반복적인 작업, 하드 코딩 등은 자동화로 맡겨 버리고 꼭 필요한 코딩을 할 수 있도록 도와주는 방법이 보일러 플레이트입니다. 가장 대표적인 예로 create-react-app 활용하면 미리 갖춰진 골격을 주고 개발자는 거기서 원하는 서비스에 맞춰서 개발을 하는 것이다. 만약 create-react-app 없이 첨부터 세팅을 한..

ITstudy 2023.07.12

GitLab 개념 & 정리

GitLab이란? - 프로젝트 버전 관리를 위해서 사용 - 소스코드를 저장할 수 있는 서버를 운영하고 서버에 저장 함으로 버전관리, 협업, 백업, 유지보수 등 다양한 장점이 있다. - CI및 CD를 구축해서 프로젝트에 생산성을 높일 수 있고 코드 컴토및 안전하게 관리가 가능하다. 1. Git 설치 https://git-scm.com/ Git git-scm.com 2. Gitlab 프로젝트 셋팅 3. Gitlab Config 셋팅 사용자이름과 이메일 주소 전역으로 셋팅 git config --global user.name "yoo" git config --global user.email "yoo@gmail.com" 사용자 config 확인 # git config --list user.name=yoo use..

Git 2023.07.10

자바스크립트 알고리즘 52 일차 (프로그래머스)

52일차 첫번째 문제 문제: 나머지가 1이 되는 수 찾기 난이도: 하 풀이 과정: 나머지가 1이 되는 가장 작은 자연수를 찾기 위해서 매개변수 n 개수만큼 for 문을 순회하고 n % i 나눈 나머지 값이 1 조건에 만족하는 경우가 가장 작은 자연수 이기때문에 i 값을 return 한다. 참고사항: 산술 연산자: % 나눈 나머지값을 반환 https://school.programmers.co.kr/learn/courses/30/lessons/87389 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

자바스크립트 알고리즘 51 일차 (프로그래머스)

51일차 첫번째 문제 문제: 숫자 문자열과 영단어 난이도: 중 풀이 과정: 매개 변수 s 문자열 length만큼 for문을 순회하고 변수 2개들 만들고 순회하는 원소 값이 숫자면 정규식 조건에 걸려 result 에 값을 할당하고 숫자가 아니고 문자열이면 currentNumber에 문자를 할당해서 numberMap에 문자열에 프로퍼티가 할당 되면 프로퍼티에 값을 할당하고 currnentNumber 값을 초기화 해준다. 참고사항: 문자열도 길이가 있어서 for문 순회가 가능하다. hasOwnProperty는 객체에 특정 값이 있는지 블리언 값으로 반환한다. https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용...

자바스크립트 알고리즘 50 일차 (프로그래머스)

50일차 첫번째 문제 문제: 제일 작은수 제거하기 난이도: 하 풀이 과정: 매개변수 arr를 Math.min 스프레드 구문으로 배열에 최소값을 찾아서 상수에 담고 매개변수 arr filter 메소드를 활용해서 최소값에 상수와 다른것들만 걸러내서 상수에 담는다. 배열에 값이 1개거나 이하라면 [-1]반환하고 아니면 filter로 걸러낸 배열에 값을 return 참고사항: Math.min() 최소값을 찾을수 있고 스프레드 구문으로 배열에 최소값을 찾는다. Math.max() 최대값을 찾을수 있다. filter 함수는 배열에 순회해서 값들을 필터할 수 있다. 삼항연산자 true = ? false = : https://school.programmers.co.kr/learn/courses/30/lessons/12..

자바스크립트 알고리즘 49 일차 (프로그래머스)

49일차 첫번째 문제 문제: 직사각형 별찍기 난이도: 하 풀이 과정: row 3줄이며 a N개수 만큼 * 채워져야해서 repeat 함수로 문자열을 개수만큼 돌려서 셋팅하고 b개수만큼 for 문을 순회하며 값을 출력한다. 참고사항: repeat 함수는 문자열은 개수만큼 반복한다. 이 문제 로직은 게시판에서 별표 평점을 내는 기능이나 이런곳에서 활용할수 있는 로직으로 문제를 풀었다. https://school.programmers.co.kr/learn/courses/30/lessons/12969 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

자바스크립트 알고리즘 48 일차 (프로그래머스)

47일차 첫번째 문제 문제: 부족한 금액 계산하기 난이도: 중하 풀이 과정: 매개변수 price, money, count 자연수로 넘어오고 count만큼 for문을 순회하고 result 변수에 price N배의 값을 축적한다. money 값이 result 값에 같거나 이상이면 반환할 값이 없기 때문에 0 아니라면 result값과 money값을 빼줘서 return한다. 참고사항: 삼항연산자는 조건 연산자로 가독성과 쉽게 조건문을 표현할 수 있다. https://school.programmers.co.kr/learn/courses/30/lessons/82612 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을..

자바스크립트 알고리즘 47 일차 (프로그래머스)

47일차 첫번째 문제 문제: 없는 숫자 더하기 난이도: 중하 풀이 과정: 매개변수로 넘어오는 배열에 원소는 0~9 중 일부가 있어서 0~9 숫자가 담긴 배열을 하나 만들고 for문으로 순회하면서 매개변수 배열에 특정 숫자가 없으면 그 숫자를 result에 더해서 return 값을 반환 참고사항: let 블록스코프이며 재할당이 가능하다. includes 메소드는 특정 문자열을 찾는데 사용하면 특정문자열이 있으면 true 없으면 false 반환한다 https://school.programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을..

자바스크립트 알고리즘 46 일차 (프로그래머스)

46일차 첫번째 문제 문제: 같은 숫자는 싫어 난이도: 하 풀이 과정: 매개변수 arr 배열에 길이 만큼 for문을 순회하고 상수로 새로운 배열과 벼수로 prev 값을 정의하고 prev 값하고 순회하는 arr배열에 원소값하고 같지 않다면 새로운 배열 result 넣으면 중복되는 숫자를 넣지 않은 배열을 return 할수 있다. 참고사항: 순회하는 현재값과 이전값에 조건이 중요하다. https://school.programmers.co.kr/learn/courses/30/lessons/12906?language=javascript# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. progr..

자바스크립트 알고리즘 45 일차 (프로그래머스)

45일차 첫번째 문제 문제: 푸드파이트 대회 난이도: 중 풀이 과정: 매개변수 food 배열에 문제설명에 음식개수를 2로 나눠서 Math.floor로 소수점을 내려서 새로운 배열을 만든다. divide 배열을 순회하면서 2로나눈 원소값만큼 idx 값을 돌려서 result 문자열에 놓고 sort함수로 내림차운 새로운 배열은 만들고 문자열을 조합해서 return 참고사항: Math.floor 메소드로 소수전음 내린다. ex: 1.5 > 1 repeat 함수 현재 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열. ex "1".repeat(2) > "11" [...값] 깊은 복사로 새로운 메모리에 배열을 저장하고 sort함수로 내림차순을 만들고 join으로 문자열로 반환. https://school.prog..

자바스크립트 알고리즘 44 일차 (프로그래머스)

44일차 첫번째 문제 문제: 크기가 작은 부분문자열 난이도: 하 풀이 과정: 매개변수 t, p에서 p 길이를 뺀 t 길이 만큼 for문을 순회하고 substring 메소드로 3개씩 문자열로 짜르고 매개변수 p 값과 substring 짜른 문자열을 정수로 변환해서 작거나 같으면 count 변수에 1 축적해서 return 한다. 참고사항: substring 메소드는 문자열을 짜를수있다. 변수 앞에 + 의미는 Number 정수변환 의미다. https://school.programmers.co.kr/learn/courses/30/lessons/147355?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기..

자바스크립트 알고리즘 43 일차 (프로그래머스)

43일차 첫번째 문제 문제: 두수의 합 난이도: 하 풀이 과정: 매개변수 a, b를 BigInt 활용해서 숫자형으로 형변환을 해서 a, b를 더하고 toString() 함수로 문자열로 변환해서 값을 반환 참고사항: Number 객체는 2^53 - 1 최대 수를 표현할 수 있다. 그래서 BigInt를 활용해서 2^53 -1 이상에 수를 표현할 수있다. toString() 형변환으로 문자열로 변환시킨다. https://school.programmers.co.kr/learn/courses/30/lessons/181846 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co..

자바스크립트 알고리즘 42 일차 (코딩도장)

42일차 첫번째 문제 문제: 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수 난이도: 코딩테스트 문제 풀이 과정: s 배열에 값이 있고 ss는 slice 활용해서 깊은 복사로 인덱스 1부터 시작하는 새로운 메모리에 저장된 배열을 생성 s배열에 원소를 순회하면서 인덱스 1부터 시작하는 ss 배열로 각 쌍의 배열을 반환한다. [ [1,3], [3, 4], [4, 8], ...] sort 함수를 활용해서 각 쌍의 두번째 요소와 첫번째 요소의 차이를 기준으로 오름차순으로 정렬을 하면 차이가 가장작은 쌍의 정렬된 배열로 반환이 된다. const s = [1, 3, 4, 8, 13, 17, 20] const ss = s.slice(1) s.map((v, i) => [v, ss[i]]..

자바스크립트 알고리즘 41 일차 (프로그래머스)

41일차 첫번째 문제 문제: 배열 만들기6 난이도: 하 풀이 과정: 매개변수 arr에 원소들을 for문으로 순회를하고 새로운 배열 stk 마지막 값과 순회하는 arr 값이 같으면 stk배열에 마지막 값을 지우고 아니면 stk 배열에 arr 원소 값을 넣는다. for문을 순회하고 return값으로 빈배열이면 [-1] 값을 아니면 stk 값을 반환하면 된다. 참고사항: javascript 배열에 유용하게 사용가능한 함수 정리 .push(): 배열의 맨뒤에 값을 추가. .unshift(): 배열의 맨앞에 값을 추가. .pop(): 배열에 맨뒤 값을 제거 .shift(): 배열에 맨앞 값을 제거 https://school.programmers.co.kr/learn/courses/30/lessons/181859 ..

자바스크립트 알고리즘 40 일차 (코딩도장)

40일차 첫번째 문제 문제: 1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가? 난이도: 코딩테스트 문제 풀이 과정: 새로운 배열 10000개를 0으로 채워주고 map으로 10000숫자를 idx 순서로 채워준다. toString 함수로 배열에 숫자를 문자열로 만들어주고 split("") 모든 숫자를 배열로 만든다. 거기서 배열안에 8이 들어가는 모든 원소 값을 걸러주면 10000개 안에 들어가는 8의 개수를 찾을수 있다. const arr = Array(10000).fill(0).map((val, idx) => idx).toString().split("").filter((val) => val === "8").length 참고사항: 새로운 배열에 fill 함수로 0값을 채우고 map idx로 0~9..

자바스크립트 알고리즘 39 일차 (프로그래머스)

39일차 첫번째 문제 문제: 겹치는 선분에 길이 난이도: 중 풀이 과정: 매개변수에 lines 2차원 배열에 개수에 겹치는 부분은 중복이 되는 개념으로 새로운 배열을 만들어 준다. 문제에 -100 에서 100까지에 원소값이 있기때문에 200개의 배열을 0으로 채워준다. 매개변수를 foreach로 순회를 하고min < max만큼 순회를 돌명선 새로운 배열에 값을 채워나간다. +100은 음수값에 대한 예외로 min + 100개 값에 index 부터 시작한다. 참고사항: foreach는 map 같은 개념으로 배열을 순회한다. new Array는 새로운 배열을 만들고 fill 배열에 값을 채워준다. 만약에 1일라면 200개 배열에 값은 1로 채워진다. https://school.programmers.co.kr/..

자바스크립트 알고리즘 38 일차 (프로그래머스)

38일차 첫번째 문제 문제: 조건에 맞게 수열 변환하기1 난이도: 하 풀이 과정: 매개변수 arr넘오고 배열에 원소를 순회하기위해서 map함수를 사용하고 원소에 값으로 if 조건을 만들어준다 설명에서 말했듯이 val 값이 50보다 크거나 짝수라면 나누기 또는 짝거나 홀수라면 곱하기로 원소에 값들은 반환한다. 참고사항: if문에 &&는 and 뜻에 논리 연산자이고 ||는 or뜻에 연산자이다. https://school.programmers.co.kr/learn/courses/30/lessons/181882 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

자바스크립트 알고리즘 37 일차 (프로그래머스)

37일차 첫번째 문제 문제: 무작위로 K개수 뽑기 난이도: 중 풀이 과정: 매개변수 arr 길이 만큼 for문을 순회하고 빈배열 result에 arr원소값을 담아준다. includes에 중복문자열이 없는 값들을 배열에 넣고 result 배열에 길이하고 매개변수 k에 길이하고 같으면 break로 for문을 빠져 나오고 result에 길이가 k보다 작으면 result 배열 원소 값을 -1 바꿔준다. 참고사항: includes는 특정문자열을 찾는 메소드로 있으면 true 없으면 false를 반환한다. for문, while문은 배열을 순회하는 방식이다. break 순회하는 배열을 빠져나오게 한다. https://school.programmers.co.kr/learn/courses/30/lessons/181858..

자바스크립트 알고리즘 36 일차 (프로그래머스)

36일차 첫번째 문제 문제: 대소문자 바꿔서 출력 난이도: 하 풀이 과정: str 문자열 값을 split 함수로 배열로 만들고 map돌려서 javascript 알파벳 소대문자 메소드를 활용해서 값을 반환하고 join 함수로 문자열 반환 참고사항: javascript 알파벳 소대문자 메소드로 toUpperCase() (대문자) 와 toLowerCase() (소문자) 사용한다. https://school.programmers.co.kr/learn/courses/30/lessons/181949?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programme..

자바스크립트 알고리즘 35 일차 (프로그래머스)

35일차 첫번째 문제 문제: OX퀴즈 난이도: 하 풀이 과정: 매개변수 quiz에 원소들을 for문을 돌려 순회하고 원소에 값들을 split하고 구조분해할당으로 if 조건문으로 값을 할당. 참고사항: 배열, 객체에 값들을 분해해서 값을 할당받을수 있는 표현식. https://school.programmers.co.kr/learn/courses/30/lessons/120907 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

자바스크립트 알고리즘 34 일차 (프로그래머스)

34일차 첫번째 문제 문제: 안전지대 난이도: 중 풀이 과정: 2차원 배열에 매개변수에 총 길이를 상수에 담고, d 2차원 배열로 특정 방향들을 찾아준다. 2중 for문으로 매개변수에 1의 값을 찾아주고 상하 좌우 대각선에 값을들 찾아서 new Set에 추가를 해주고 n * n - new Set 객체 사이즈 만큼 삭제를 한다. 참고사항: new Set: 객체는 중복되지 않는 유일한 값들에 집합이다. forEach는 배열을 순회하는 여러 방법중 하나다. map 비슷한 함수 https://school.programmers.co.kr/learn/courses/30/lessons/120866?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발..

자바스크립트 알고리즘 33 일차 (프로그래머스)

33일차 첫번째 문제 문제: 다항식 더하기 난이도: 중 풀이 과정: 매개벼수 polynomial을 split(" + ") 함수로 공백 + 기준으로 짤라주고 동류항과 일반항에 값을들 더하는 변수 값들을 만들어준다. result 배열에 상수를 만들어서 각각에 값들을 만들어 준다. 참고사항: filter로 includes 메소드에 x값이 true or false로 배열에 원소값을 걸러준다. replace로 x를 빈값 or 1로 반환 reduc함수로 값을 더한다. if 문에 !로 판명되는 값들은 undefined, null, NaN, 0, -0, "", false는 false로 판명되서 if (!xNumber)로 조건을 걸수 있고 ! 없다면 true 값이 로직을 타게된다. https://school.progra..

자바스크립트 알고리즘 32 일차 (프로그래머스)

32일차 첫번째 문제 문제: 등수 매기기 난이도: 하중 풀이 과정: 매개변수 n에 정수를 배열로 변환해서 정수 개수만큼 숫자를 정렬하고 counter 변수를 만들고 for문으로 arr 길이 만큼 순회를 하면서 counter 1씩 더하고 while문에 3의 배수인 값과 3이 들어간 숫자 while문을 타서 1을 더 증각해서 값을 반환. 개념을 이해하면 쉽다(위에 배열과 아래 배열에 맵핑하는 원소를 확인): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [1, 2, 4, 5, 7, 8, 10, 11, 14, 16 ] = 3, 6, 9, 12, 15 는 3의 배수이기때문에 포함하면 안되고 13은 3의 숫자가 있기 때문에 포함하면안된다. 참고사항: includes 메소드는 특정 문자가 포함하고 있는지..