알고리즘/프로그래머스 - JS

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 처음에는 그렇게 어려운 문제가 아니라고 생각했습니다. 그래서 문제설계를 아래와 같이 하였습니다. 1. sort : 원소의 길이 오름차순으로 정렬 2. for문으로 순회하면서 0번째 원소부터 나를 포함하고 있는 인원체크 3. 주문 횟수 내림차순으로 정렬 4. return 하지만 이렇게 하면 완전 문제를 잘 못 이해하고 있는 것 입니다. 예제 1번처럼 `orders`가 이렇게 주어졌을 때 ["ABCFG", "AC", "CDE", "ACDE", "BCFG", "ACDEH"] 이렇게 원소길이를 기준으로 오..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 문제를 읽어보면 핵심은 일직선으로 내려갈 수 없다. 고려해야할 사항 1. 행에 같은 점수가 있는 경우 한 행에 같은 점수가 있는 경우도 고려하셔야 합니다. [[4, 3, 2, 1], [2, 2, 2, 1], [6, 6, 6, 4], [8, 7, 6, 5]] => 20 2. 무조건 최댓값을 고르면 안된다. [[1, 2, 3, 4], [2, 3, 4, 100]] => 103 간단한 예시로 첫 번째 행에서 최댓값인 4를 고르면 두 번째 행에서 100을 고를 수 없기 때문에 이 부분도 고려해야 합니다. 미..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 오랜만에 풀리지 않는 문제를 만났다. 구현을 정말 쉽다 바로 되지만 제출하면 몇몇 테스트 케이스가 '시간초과'가 발생하여 다시 코드를 작성해야 했다. 초기 코드 function solution(numbers) { const save = { number : null, maxNumber : null } return numbers.map((number,index,arr) => { if(number === save.number) return save.maxNumber let nextIndex = index..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 자바스크립트 관점에서 이 문제는 '정규표현식을 조금 쓸줄 아니?', 'sort()함수에 대해서 제대로 이해했니?' 를 묻고싶어서 낸 문제인것 같았다. 이 문제는 HEAD와 NUMBER만 정확히 뽑아내면 된다. HEAD가 같을 때는 NUMBER로 비교하고 NUMBER도 같다면 return 0을 해서 순서를 유지시켜준다. 문제 풀기전 했던 생각 // 문제 /* 파일명에 포함된 숫자를 반영한 정렬 기능 파일명 100글자 이내 영어 대소문자, 숫자, 공백, 마침표,빼기부호 파일명 영어로 시작, 숫자 무조건..
https://school.programmers.co.kr/learn/courses/30/lessons/12981# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최근 나의 풀이 문제 풀기전 생각했던 것들 // 문제 /* 1부터 n 까지 n명의 사람이 영어 끝말잇기를 한다. 이전에 등장했던 단어 x 한 글자인 단어 x return [number, number] return [가장 먼저 탈락하는 사람의 번호, 그 사람이 자신의 몇 번째 차례에 탈락하는지] */ // 제한 /* n 참여자수 2~10 arr.length n이상 100이하 단어의 길이 2이상 5..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 뭔가 확실한 방법이 생각나지 않아 나열하면서 풀어야겠다고 마음먹었습니다. 그리고 나열하다 규칙성이 나오면 미루어 짐작해서 계산하면 된다고 생각했습니다. 이 풀이의 핵심은 각 자리의 문자들의 숫자를 다 더한게 순서를 나타낸다는 것입니다. 예를들어 A = 1 순서 1 AA = 1 + 1 순서 2 AAA = 1 + 1 + 1 순서 3 AAAA = 1 + 1 + 1 + 1 순서 4 AAAAA = 1 + 1 + 1 + 1 + 1 순서 5 AAAAE = 1 + 1 + 1 + 1 + 2 순서 6 여기까지 보면 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 문제 풀기전 했던 생각 // 문제 /* 선행스킬은 조건 이 참이어야 배울 수 있다. skill -> 1이상 20 이하인 배열 중복 x skill_trees > 중복 x 스킬을 나타내는 문자열 , 길이가 2이상 26이하인 데이터가 크지 않으니 거의 제한 x 모두 중복이 없다. return 가능한 스킬트리의 개수 return number */ // 설계 /* skil 배열을 먼저 만들어서 해당 각 스킬트리마다 해당 스킬이 나오면 하나씩 제거 즉 배열로 arr[0]으로 판단 if(선행 스킬이 필요한 스킬..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 처음에는 완전 접근을 잘못했다. 처음 풀었을 때 생각의 흐름 1. dirs길이가 짧고 반복문의 깊이가 깊을 것 같지 않아 forEach를 사용해도 되겠다고 판단했다. 2. 따라서 string을 스프레드 연산자를 통해 배열로 만들고 forEach로 순회하면서 좌표를 저장해야겠다. 3. 좌표는 도착지점만 저장하고 중복이 있으면 안되니 new Set을 사용해서 저장해야겠다. 4. 경계지점 넘어가는 것은 if문을 통해서 제어해야겠다. 5. 이 문제에서 모든 데이터는 string이나 array 보다 obje..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 프로그래머스에서는 해당 문제를 자바스크립트로 풀 수 없다. 그래서 vscode에서 자바스크립트로 풀고 파이썬으로 코드를 변경하였다. DP를 방금 공부해서 어떻게 풀어야겠다는 바로 생각이났는데 코드로 표현하는데 시간이 걸렸다. DP를 모르시면 참고! Dynamic Programming (DP) 땅따먹기 문제를 풀고 있는데 2시간동안 생각을 하는데 도저히 안 풀렸다. 계속 시간초과가 나서 이것저것 시도 해보다가 힌트라도 보자해서 봤던게 바로 DP였습니다. 그럼 DP는 과연 무엇일까? D html-jc...
개발자성장기
'알고리즘/프로그래머스 - JS' 카테고리의 글 목록