전체 글

뭐 그렇게 됐다
코딩테스트

[JS] 2개 이하로 다른 비트

난이도: Lv. 2 정답률: 54% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 짝수인 경우 1을 더한 값이 정답 값 2. 홀수인 경우 LSB부터 0인 비트가 나올 때까지 1인 비트의 개수를 구한다. 2-1. 원래의 수에 2^(2에서 구한 개수 - 1)을 더해주면 정답 값이다. 코드 function solution(numbers) { const answer = []; for (const number of numbers)..

웹 프로그래밍

[React] 프로젝트 관리 앱

App.jsx import { useState } from "react"; import { v4 as uuid } from "uuid"; import Sidebar from "./components/Sidebar"; import NoSelected from "./components/NoSelected"; import AddProject from "./components/AddProject"; import ProjectDetail from "./components/ProjectDetail"; function App() { const [selected, setSelected] = useState({ selected: "none", project: {} }); const [projects, setProject..

코딩테스트

[JS] 2 x n 타일링

난이도: Lv. 2 정답률: 54% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. n만큼의 길이를 가지는 배열을 1로 초기화한다.. 2. n번째 피보나치수열을 구하기 위해 i 번째 피보나치 수를 계산하고 값을 1000000007로 나눈 나머지를 1. 에서 생성한 배열에 저장한다. 3. n번째 피보나치 수를 1000000007로 나눈 나머지를 리턴한다. 코드 function solution(n) { const fibo = ..

코딩테스트

[JS] 택배상자

난이도: Lv. 2 정답률: 55% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 메인 스택을 n부터 1까지 1씩 감소하는 원소들로 초기화한다. 2. while문을 돌며 상자 번호를 확인한다. 2-1. 메인 스택의 마지막 상자가 현재 실어야 하는 상자와 동일한 경우 2-2. 서브 스택의 마지막 상자가 현재 실어야 하는 상자와 동일한 경우 2-3. 서브 스택의 마지막 상자 번호가 현재 실어야 하는 상자 번호보다 큰 경우 ..

코딩테스트

[JS] 숫자 변환하기

난이도: Lv. 2 정답률: 55% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. y보다 작기 때문에 정답 가능성이 있는 원소들을 possible에 저장한다. 2. possible에 있는 모든 원소에 대해 n을 더한 것, 2를 곱한 것, 3을 곱한 것이 정답 가능성이 있는지 확인하고, 정답 가능성이 있다면 새로운 possible 배열이 될 Set()에 저장한다. 3. 2.의 반복문이 끝나면 Set을 배열로 변환하여 po..

코딩테스트

[JS] 프렌즈4블록

난이도: Lv. 2 정답률: 56% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 블록이 지워진 후 위에 있는 블록을 내릴 때 열 방향으로 처리하는 것보다 행 방향으로 처리하는 것이 더 간단하다. 따라서 원본 board의 전치행렬을 생성한다. 2. 1.에서 생성한 전치행렬을 순회하며 4블록을 확인한다. 4블록임이 확인되면 삭제할 인덱스를 "행번호,열번호" 형태로 Set에 추가한다. 굳이 Set을 안 써도 될 것 같긴 하다..

코딩테스트

[JS] 파일명 정렬

난이도: Lv. 2 정답률: 56% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 각 파일명에서 head 부분과 number 부분을 객체로 저장한다. 객체로 저장할 때 origin이라는 키로 원래의 파일 이름도 저장한다. 2. 1.의 과정을 반복하며 키를 head 부분, value를 1.에서 생성한 객체들을 저장한 배열로 하는 객체를 만든다. 3. 2.에서 생성한 객체를 [key, value]의 배열로 변환한다. 4. 3..

코딩테스트

[JS] 롤케이크 자르기

난이도: Lv. 2 정답률: 57% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 토핑 종류당 개수가 몇 개 있는지에 대한 Map을 초기화한다. 2. 동생 롤케이크의 토핑 종류를 저장하는 Set을 선언한다. 3. 주어진 토핑 배열 topping의 맨 끝 원소부터 하나씩 2.의 Set에 담고, 1.의 Map의 해당 key의 value를 1 감소시킨다. value가 0이 되는 경우 key를 삭제한다. 4. topping 배..

코딩테스트

[JS] 오픈채팅방

난이도: Lv. 2 정답률: 57% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. uid별 닉네임을 Object에 저장한다. 2. 1.에 저장되어 있는 닉네임으로 출입 기록에 따른 메시지를 저장한다. 코드 function solution(record) { let answer = []; const uidName = {}; for (let r of record) { const splitArr = r.split(' '); if..

코딩테스트

[JS] 스킬트리

난이도: Lv. 2 정답률: 57% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/49993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 1. 선행 스킬들을 각각 Set에 담는다. 2. skill_trees의 각 원소들에서 선행 스킬 목록에 없는 문자를 제거한다. 선행 스킬이 "CBD"이고, 스킬 트리가 "AECB" 이면 "CB"가 된다. 3. 2.의 결과 문자열과 선행 스킬 문자열을 2.의 경과 문자열의 길이만큼 자른 문자열이 동일하면 가능한 스킬 트리 이므로 정답을 1 증가시킨..

미안하다 강림이 좀 늦었다
어제 내 스택이 무너졌어