전체 글

또렷한 기억보다 희미한 연필자국이 낫다
PS (Problem Solving)/Programmers

[프로그래머스] 오픈 채팅방 - 자바스크립트, 파이썬

문제https://school.programmers.co.kr/learn/courses/30/lessons/42888?language=javascript 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 자바스크립트function solution(record) { // 객체에 Key Value를 통해 user의 정보를 등록 또는 변경 let userDb = {}; for (const event of record) { const eventList = event.split(' ') if (eventList[0] === "Enter" || eventList[0] === ..

라이브러리

[TypeDoc] TypeDoc으로 TypeScript 프로젝트 문서화 하기

Intro 프로젝트를 진행하면서 jsdoc을 활용해서 코드 주석을 작성하고 있었다. 문서화를 위해 문서 생성을 시도했지만 타입스크립트 변환이 일부 실패하면서 타입스크립트 문서화에 적합한 라이브러리를 찾아보던 중 TSDoc 와 TypeDoc 라이브러리를 알게 되었다.  TSDoc공식 사이트 : https://tsdoc.org/NPM : https://www.npmjs.com/package/@microsoft/tsdoc깃허브 : https://github.com/microsoft/tsdoc  조사해보니 TSDoc은 Microsoft가 제안하고 주도하는 오픈 소스 표준으로, TypeScript 코드의 주석을 문서화하기 위한 스타일 가이드를 제공한다고 한다. 나는 타입스크립트 기반의 주석을 잘 문서화시킬 수 있..

PS (Problem Solving)/Programmers

[프로그래머스] 전화번호 목록 - 자바스크립트

문제https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=javascript 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 자바스크립트 phone_book의 길이가 1 이상 1,000,000 이하인 점을 감안해 최대한 빠르게 서칭하기 위해 먼저 sorting을 진행했다.정렬 방법은 아래와 같다.// 입출력 예제const phone_book = ["12", "88", "123", "567", "1235"]// 리스트를 문자 순으로 정렬한 경우 phone_book.sort() // ["12", "123", "1235", "567"..

React

[React-Query] 리액트 쿼리 브라우저 복귀시 API 중복 요청 방지

문제 발생리액트 쿼리(React Query, TanStack Query)를 사용해서 데이터를 받아오는 API 중 브라우저 탭 외의 영역을 클릭 후 다시 크롬 브라우저 내부를 클릭 했을 때 API가 다시 요청되는 현상이 발생했다.  Background Refetching 사용자가 브라우저 탭을 떠났다가 다시 돌아왔을 때, 데이터가 최신 상태인지 보장하기 위해서 브라우저가 암묵적으로 해당 캐시에 대한 데이터를 재요청하는 것을 의미한다.캐시를 사용하면서 매번 Background Refetching을 한뒤, 변경 사항이 있다면 UI를 변경한다. refetchOnWindowFocus 옵션true (기본값)falsealwaystrue사용자가 브라우저 탭을 떠났다가 다시 돌아왔을 때, 데이터를 최신 상태로 동기화하기..

PS (Problem Solving)/Programmers

[프로그래머스] 기능개발 - 자바스크립트

문제https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  자바스크립트- 2중 while을 썼는데 실무에서는 보통 while문 사용을 지양하다보니 조금 마음에 걸린다.function solution(progresses, speeds) { let nowProgresses = progresses let nowSpeeds = speeds let answer = []; while(nowProgresses.length > 0) { // 필요한 일자 - 떨어지지 않을..

PS (Problem Solving)/Programmers

[프로그래머스] 카드 뭉치 - 자바스크립트

문제https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 자바스크립트function solution(cards1, cards2, goal) { for(const word of goal) { if(word === cards1[0]) { cards1.shift() } else if (word === cards2[0]) { cards2.shift() } else { ..

PS (Problem Solving)/Programmers

[프로그래머스] 크기가 작은 부분문자열

문제https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 자바스크립트function solution(t, p) { const n = p.length; let answer = 0; for (let i = 0; i = parseInt(num)) { answer += 1 } } return answer;}

PS (Problem Solving)/Programmers

[프로그래머스] 괄호 회전하기 - 자바스크립트

문제https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 자바스크립트통과하지 못한 코드처음에는 (), [], {}의 개수만 체크하는 로직으로 접근했었는데 14개 중 마지막 테스트 케이스를 통과하지 못했다.// 통과하지 못한 잘못 접근한 코드// 괄호가 모두 올바른지 체크하는 함수function checkCorrect(bracketArr) { let checkBracket = [0, 0, 0] // Check Stack ["()","[]", {}] ..

PS (Problem Solving)/Programmers

[프로그래머스] 덧칠하기 - 자바스크립트

문제https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 자바스크립트function solution(n, m, section) { let wall = new Array(n).fill(0); // 칠해야 할 영역은 양수로 체크 for (const num of section) { wall[num - 1] = 1 } let answer = 0 for (let i = 0; i 0) { // 칠해야 ..

PS (Problem Solving)/Programmers

[프로그래머스] 방문 길이 - 자바스크립트

문제https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 자바스크립트처음에는 2중배열을 생성 후 이동했던 좌표들을 체크하면서 좌표의 크기가 양수인 경우는 이미 지나갔던 길로 체크하는 방식으로 전략을 잡았다.하지만 구현 단계에서 꼭지점의 좌표와 리스트의 2중 배열의 체크 부분에서 괴리가 오면서 이미 지나간 길의 중복 체크가 어려운 것을 깨닫고 다른 설계를 고민하게 되었다.좌표를 key & value처럼 저장하여 중복 체크하는 방향을 바꿔 Set을 사용하게..

캐럿노트
기록하는 블로그