반응형

JavaScript 209

프로그래머스: 광고 삽입 - javascript(시간 변환, 누적합)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/72414 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  정답 풀이 코드 function solution(play_time, adv_time, logs) { const pt = calculateTime(play_time); const at = calculateTime(adv_time); const times = new Array(pt+1).fill(0) logs.forEach((log) => { const [s..

프로그래머스: 기둥과 보 설치 (빡센 구현)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/60061 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 힌트 이 코드는 기둥과 보의 설치 및 삭제 명령을 처리하여 최종 구조물을 결정한다 !  1) 각 구조물의 상태를 문자열 키로 변환하여 Set에 저장하고, 설치 및 삭제 명령에 따라 유효성을 확인2) 설치 명령은 조건을 만족할 때만 구조물을 추가하고,3) 삭제 명령은 임시로 구조물을 제거한 후 모든 구조물이 유효한지 확인한다. 4) 최종적으로 구조물 리스트를 좌표와 구조물 종류에 ..

프로그래머스: 양과 늑대 - javascript(back이 가능한 dfs)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 힌트 신박한 문제였다.자신과 연결된 자식 node로 이동할 수 있는 것은 기본으로 + 다시 부모 노드를 통해 다른 node로 이동이 가능하다.   무슨 말이냐?  문제에 최적의 이동경로가 이렇다고 말해준다.  즉, 0 => 1=> 8 => 7 => 9 => 4 => 6 =>5 의 이동경로라는 것이다. 이 이동경로를 아래 사진을 눈으로 따라가보자.  기존 이진트리의 부모 노드 =>..

찜 버튼 컴포넌트 분리하기

01. 찜 버튼 컴포넌트화 필요성 찜 버튼을 원래 상세페이지에 구현했었다.  하지만 찜 버튼을 컴포넌트화 하기로 했다.  왜냐하면,,,, ?  상세페이지에 지금 온갖 기능이 다 들어가있다. - 공연 정보 - 리뷰 기능 - 찜 버튼등등...  말 그대로 코드가 내 컨트롤의 영역에서 벗어나기 일보 직전이다. 아마 이미 벗어난 것 같다.  그래서 기능을 더 추가하기 전에 내 코드들을 기능별로 분리해서 가독성을 높이는 작업이 필요하다고 느꼈다.  두번째 이유는 재사용성이다. 우아한형제들 페이지에는 온갖 곳에 찜 버튼을 해놨는데 참 편했다. (나도 찜 버튼을 여러곳에 둬야겠다. ) 세번째 이유는 유지보수성이다. 내가 애정을 갖고 있는 프로젝트이기도 하고, 이 웹의 유저에게 다양한 기능을 제공할 수 있기 때문에 정..

프로그래머스: 표 편집 - javascript(양방향 연결리스트)

문제 풀이 출처 https://school.programmers.co.kr/learn/courses/30/lessons/81303 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 힌트 양방향 연결 리스트 를 활용한다. 연결리스트를 모른다면 아래 영상을 가볍게 시청하고 오면 코드가 쉽게 읽힌다. (나도 그랬다..)https://www.youtube.com/watch?v=K1PlysPgNZY연결리스트큰 틀은 이렇다. 01. 객체를 생성하는 생성자 함수를 정의한다.  02. 생성자 함수를 활용해서 주어진 n만큼의 node들을 만든다.   - 이때, 연결을..

프로그래머스: 합승 택시 요금 - javascript(플로이드 와샬 알고리즘)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 힌트  플로이드 와샬 알고리즘을 사용하면 참 간단한 문제다 !  코드는 간단한데, 주석을 작성하느라 좀 길어졌다.  정답 풀이 코드 function solution(n, s, a, b, fares) { //해당 node => node 로 향하는 최소 비용을 갱신할 2차원 배열 생성 const board = Array.from({length: n}).map(() => new A..

프로그래머스: [1차]셔틀버스 - javascript(센스있는 구현)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/17678 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 풀이 힌트 1) 주어진 timetable의 시간들을 분으로 나타내고, 오름차순 정렬하자. 2) 버스가 n회 오니까 반복문을 n만큼 돌린다. - 현재 시간 9:00 를 540으로 계산한다. - 현재 시간 540보다 일찍 온 크루들이 몇명인지 센다.(canRide)      - 만약 이 크루들이 m명보다 많을 때?       => timetable에서 0부터 m만큼만 제거한다.     - ..

프로그래머스: 다단계 칫솔 판매 - javascript(구현 및 dfs)

깔끔한 문제였던 것 같다... 내가 풀었기 때문에 ^^ 좋은 문제인 것 처럼 느껴짐 ㅎㅎ  문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 풀이 힌트  1) 객체를 2개 생성 - 각 사람을 index로 활용하기 위한 map 객체 - 각 사람을 key로, 추천인을 value로 한 map 객체   2) 현재 사람의 이익을 계산하는 함수 - 현재 사람은 90% 를 가지고, 다음 추천인에게는 절사한 10%를 준다. => 즉, 추천인의 10%..

NextAuth 소셜 로그인 에러 (하라는거 다했는데 안됐을 때)

제목 그대로 하라는 거 다했는데 안됐다.  redirect url 도 잘 써줬었고, 오타도 아니였다. 어떤 설정을 빼놓지도 않았다.  뭐가 잘못됐는지, 카카오 dev 공식문서에서 하라는 것도 해봤는데 안됐었다. 근데 문제는 구글 auth 도 안되는것이다.  무언가 내가 NextAuth에서 놓치고 있구나 생각은 들었지만 뭔지는 나오지 않았다.   그런데 오늘 이게 웬걸 ? 프로젝트 npm run dev 시작하는데 터미널에 떡하니 `warn`이 떠있더라. 이게 웬 떡이냐 주소를 따라 들어가봤다.  https://next-auth.js.org/warnings#nextauth_url Warnings | NextAuth.jsThis is a list of warning output from NextAuth.js...

프로그래머스: 징검다리 건너기 - javascript(이분탐색)

문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/64062문제 풀이 힌트  단순하게 반복문으로,1) 현재 디딤돌 배열로 사람 하나 건널 수 있는지 체크 - 디딤돌 숫자가 0인 것이 연속적으로 k이상이 되면 못건넘 2) 건넜다면 각 디딤돌 숫자 -1 , 건넌 사람 수인 cnt + 13) 건너지 못했다면 그동안 건넌 친구 cnt return 하기  의 방법을 생각했다면 바로 시간 초과다.   stones 배열의 크기도 엄청난데, 디딤돌 숫자가 2억까지도 가능하다니,,, 그러면 모든 디딤돌이 2억일 때, 나는 각 배열에서 사람 하나 건널 때 -1을 2억번 해야 한다.   자, 이분탐색으로 시선을 바꿔보자.  단순 반복문으로 생각할 때는 기준이 ..

반응형