전체 글 47

[프로그래머스] 이진 변환 반복하기 (JS)

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이  (1) 문자열 s에서 0의 갯수를 구하기 위해 배열로 변환 -> filter 메서드를 이용하여 length를 구한다.  (2) 1만 추출하여 2진수로 변한하기 위해 toString 메서드를 사용한다.  (3) s가 1이 될 때까지 반복한 후 2진수 변환 횟수, 지운 2의 총 갯수를 반환한다.function solution(s) { let tryCnt = zeroCnt = 0; while (s !== "1") { s = s.split(""); zeroCnt += s.filter(num => num ===..

코딩테스트 2025.01.01

1차 면접 후기

A라는 회사 개발 면접을 다녀왔다.4시 30분 ~ 5시 30분으로 예정되어 있었다.4시 20분에 미리 도착하여 대기실에서 잠시 대기했다. 커뮤니티룸에서 회의하는 여러 개발자분들이 보였고, 각자 자리에서 일하고 있는 개발자분들도 보였다. 첫 인상은 나쁘지 않았던 것 같다.면접실로 안내받고 두 분의 개발자가 들어오셨다. 그렇게 45분 간의 면접이 끝났다.면접 후 느낀 것은 내가 얕게 알고 있는 부분이 많다는 것이다. 기술에 대한 질문을 받았는데 '이건 이러한 역할을 했던 것 같은데? 근데 확실하지 않아.' 라고 생각하는 부분이 많았고, 그 질문에 대한 대답은 전부 '모르겠습니다.'로 끝나버렸다.면접 후에 주요 질문들을 다시 한 번 공부하고 정리하는 시간을 갖고 있다. 이전 면접에서는 기술적인 질문이 거의 없..

잡담 2024.12.30

[프로그래머스] 캐시 (JS)

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이  (1) 캐시 배열을 생성한다.  (2) 캐시에 들어 있지 않은 도시는 실행 시간 5초를 더해주고, 캐시의 가장 최근 사용한 위치에 추가한다. 캐시 사이즈 초과를 막기 위해 가장 오랫동안 사용되지 않은 항목을 우선적으로 제거한다.  (3) 캐시에 들어 있는 도시는 실행 시간 1초를 더해주고, 캐시의 가장 최근 사용한 위치에 추가한다.function solution(cacheSize, cities) { if (cacheSize === 0) return cities.length * 5; const cache = []; let ..

코딩테스트 2024.11.24

[프로그래머스] 가장 많이 받은 선물 (JS)

문제https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 (1) 주고 받은 선물과 선물 지수를 객체로 생성 후 셋팅한다. (2) 준 사람의 선물 갯수와 받은 사람의 선물 갯수를 비교하기 위해 배열로 변환 후 반복문을 실행한다. (3) 준 선물과 받은 선물의 갯수를 비교하여 A가 받을 선물의 개수를 1씩 늘린다. (4) 주고 받은 선물 갯수가 같을 경우 앞서 생성해 둔 선물 지수로 비교한다. (5) 최종적으로 가장 많은 선물을 받는 사람의 선물 갯수를 return한다.function..

코딩테스트 2024.11.23

[프로그래머스] 테이블 해시 함수 (JS)

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이  (1) 조건에 맞게 data를 정렬한다.  (2) 정렬된 data에서 각 튜플의 요소를 인덱스 i + 1로 나눈 나머지를 구하고, 그 나머지들을 모두 합산한다.  (3) XOR 연산자 ^을 사용하여 answer를 구한다.function solution(data, col, row_begin, row_end) { let answer = 0; data.sort((a, b) => { if (a[col - 1] === b[col - 1]) return b[0] - a[0]; return a[col - 1] - ..

코딩테스트 2024.11.20

[프로그래머스] 숫자 카드 나누기 (JS)

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이  (1) 비교할 마지막 숫자를 구하기 위해 두 배열의 최대 정수를 구한다. (Math.max 시간초과 -> sort로 변경)  (2) every 함수를 이용하여 조건에 맞는 답을 구한다.function solution(arrayA, arrayB) { const unionArr = [...arrayA, ...arrayB].sort((a, b) => a - b); const limitNum = unionArr[unionArr.length - 1]; let answer = 0; for (let i = 2; i num % ..

코딩테스트 2024.11.20

[프로그래머스] 과제 진행하기 (JS)

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이  (1) 과제 시작시간 기준으로 오름차순 정렬 후 비교하기 편하게 분(정수)으로 치환한다.  (2) (시작시간 + 소요시간)과 다음 과제의 시작시간을 비교하여 과제 완료가 가능하면 answer에 push한다.그렇지 않으면 과제를 중단하고 남은 시간과 함께 stopPlan에 push한다.  (3) 과제 완료가 가능한 경우 다음 과제의 시작 시간과, 중단된 과제를 저장하고 있는 stotPlan을 이용하여 최근 과제부터 순차적으로 수행한다. function solution(plans) { const answer = []; const stop..

코딩테스트 2024.11.16

React-Query

1. React-QueryReact 애플리케이션에서 서버 상태를 쉽게 관리하고 비동기 데이터를 처리하기 위한 라이브러리, 서버로부터 데이터를 가져오고, 캐싱, 동기화, 리페칭 등의 복잡한 작업을 자동화하여 데이터 fetching을 간소화React Query는 기본적으로 API 요청을 효율적으로 처리하고, 서버 상태를 클라이언트에서 쉽게 관리할 수 있게 한다.# npmnpm install @tanstack/react-query# yarnyarn add @tanstack/react-query  2. 설치 후 기본 설정import React from 'react';import ReactDOM from 'react-dom/client';import { QueryClient, QueryClientProvider ..

개인공부 2024.11.10

[프로그래머스] 뉴스 클러스터링 (JS)

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이  (1) 비교할 문자열을 소문자로 통일시킨 후 알파벳으로만 이루어진 문자열인지 검사하여 배열에 push한다.  (2) 배열의 filter 메서드와 concat 메서드를 사용하여 교집합, 합집합을 구한다. temp 배열 생성 후 교집합에 포함된 문자열은 제거한다. (합집합을 구할 때 중복 문자열이 들어가는 것을 방지하기 위해)   (3) 문제 조건에 맞게 65536을 곱한 후에 소수점 아래를 버리고 정수만 return한다.function solution(str1, str2) { const leftStr = []; const rightSt..

코딩테스트 2024.11.03

[프로그래머스] 붕대 감기 (JS)

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이  (1) attacks를 객체로 관리한다. (key -> 공격 받는 시간, value -> 데미지)  (2) attacks는 공격 시간을 기준으로 오름 차순 정렬된 상태이므로 마지막 공격 시간까지 for문을 한 번 돌면 된다.  (3) 문제 조건에 맞게 구현한다.function solution(bandage, health, attacks) { const attack = {}; const maxAttackTime = attacks[attacks.length - 1][0]; attacks.forEach(data => { ..

코딩테스트 2024.11.02