DS & Algorithm/programmers

    [프로그래머스] 양궁대회 - 자바스크립트

    [프로그래머스] 양궁대회 - 자바스크립트

    문제 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr 카카오 기출문제이다. 문제도 상당히 길고 Test case 8, 18이 쉽지 않았던 문제라 level2에서도 상당한 난이도로 느껴진다. 코드 function solution(n, info) { let answer = new Array(11).fill(0); let answerDiff = Number.MIN_SAFE_INTEGER; function isSmallScoreArr(scoreArr) { for (let i = 10; i >= 0; i--) { if (s..

    [프로그래머스] 가사 검색 - 자바스크립트

    [프로그래머스] 가사 검색 - 자바스크립트

    문제 코딩테스트 연습 - 가사 검색 programmers.co.kr 이진탐색으로 풀기 위해서 많은 시간을 소요했고, 결국 풀어서 포스팅하게 되었다. 다소 로직이 더러울 수 있고 더 효과적인 방법이 있을 수 있으니, "이렇게도 정답은 나오는구나" 정도로 보시길 바랍니다. 코드 function solution(words, queries) { const answer = []; const wordsObj = {}; const reverseWordsObj = {}; function findQuestion(query, start, end) { let result = -1; while (start arr.sort()); } ascendSort(wordsObj); ascendSort(reverseWordsObj); f..

    [프로그래머스] 외벽 점검 - 자바스크립트

    [프로그래머스] 외벽 점검 - 자바스크립트

    문제 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr 오랜만에 알고리즘 문제 포스팅이다. 우리의 목적은 코드이므로, 빠르게 코드부터 살펴보자. 코드 function solution(n, weak, dist) { const flattenWeak = [...weak, ...weak.map((elem) => elem + n)]; const weakLen = weak.length; const distLen = dist.length; const visits = new Array(distLen).fill(0); let ..

    [프로그래머스] 거리두기 확인하기

    [프로그래머스] 거리두기 확인하기

    문제 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 코드 function solution(places) { const w = 5; const h = 5; function checkDistance(x, y, place) { const [dx..

    [프로그래머스] 2개 이하로 다른 비트 - 자바스크립트

    [프로그래머스] 2개 이하로 다른 비트 - 자바스크립트

    문제 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr 코드 무지성 코드(시간 초과) function solution(numbers) { function f(x) { if (x % 2 === 0) return x + 1; const bit = x.toString(2); let idx = 0; let len; while (true) { len = 0; idx++; let nextBit = (x + idx).toString(2); const diff = nextBit.length - bit.length; len += diff + nextBit .slice(diff) .split("") .filter((b, i) => b !== bit[i]).length; if (len 1로 바꿔주고..

    [프로그래머스] 수식 최대화 - 자바스크립트

    [프로그래머스] 수식 최대화 - 자바스크립트

    문제 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 코드 function solution(expression) { function calculator(a, b, oper) { if (oper === "+") return a + b; if (oper === "*") return a * b; if (oper === "-") return a - b; } const combinations = [ ["+", "*", "-"], ["+", "-", "*"], ["*", "+", "-"], ["*", "-", "+"]..