분류 전체보기(196)
-
DFS - 중복순열 구하기
중복순열 구하기 1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 중복을 허락하여 M번을 뽑아 일렬로 나열 하는 방법을 모두 출력합니다. ▣ 입력설명 첫 번째 줄에 자연수 N(3
2024.03.25 -
DFS - 최대점수 구하기
최대점수 구하기(DFS) 이번 정보올림피아드대회에서 좋은 성적을 내기 위하여 현수는 선생님이 주신 N개의 문제를 풀려고 합니다. 각 문제는 그것을 풀었을 때 얻는 점수와 푸는데 걸리는 시간이 주어지게 됩 니다. 제한시간 M안에 N개의 문제 중 최대점수를 얻을 수 있도록 해야 합니다. (해당문제는 해당시간이 걸리면 푸는 걸로 간주한다, 한 유형당 한개만 풀 수 있습니다.) ▣ 입력설명 첫 번째 줄에 문제의 개수N(1 map.get(t)).reduce((acc, cur) => acc + cur, 0); ret = Math.max(ret, totalScore); return; } else { b.push(table[idx][1]); solve(idx + 1, b); b.pop(); solve(idx + 1, ..
2024.03.25 -
DFS - 합이 같은 부분집합
합이 같은 부분집합(DFS : 아마존 인터뷰) N개의 원소로 구성된 자연수 집합이 주어지면, 이 집합을 두 개의 부분집합으로 나누었을 때 두 부분집합의 원소의 합이 서로 같은 경우가 존재하면 “YES"를 출력하고, 그렇지 않으면 ”NO"를 출력하는 프로그램을 작성하세요. 둘로 나뉘는 두 부분집합은 서로소 집합(Disjoint Set)이며, 두 부분집합을 합하면 입력으로 주 어진 원래의 집합이 되어야 합니다. 예를 들어 {1, 3, 5, 6, 7, 10}이 입력되면 {1, 3, 5, 7} = {6, 10} 으로 두 부분집합의 합이 16으로 같은 경우가 존재하는 것을 알 수 있다. ▣ 입력설명 첫 번째 줄에 자연수 N(1 acc + cur, 0); const b = t.reduce((acc, cur) => ..
2024.03.25 -
프로그래머스 L1 - 숫자 문자열과 영단어
https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(s) { const map = new Map([['zero',0],['one',1],['two',2],['three',3],['four',4],['five',5],['six',6],['seven',7],['eight',8],['nine',9]]); let ret = ""; let tmp = ""; [...s].forEach((c)=>{ if(!Number.isNaN..
2024.03.24 -
프로그래머스 L1 - 성격 유형 검사하기
https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해석 survey를 가지고 점수 배치표를 완성해야한다. 만일 "AN"이 오게 되면, 매우 비동의 : A - 3 비동의 : A - 2 약간 비동의 : A - 1 모르겠음 약간 동의 : N - 1 동의 : N - 2 매우 동의 : N - 3 다음과 같이 점수 배치표를 완성하고 choices의 값에 따라 성격 유형 점수를 하나씩 올려주면 된다. function solution(survey, choic..
2024.03.23 -
프로그래머스 L1 - 공원 산책
https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 직관적으로 문제를 읽고 풀면 되지만 알 수 없는 테스트 케이스 실패로 정말 오랜 시간이 걸린 문제이다... 방향 벡터를 활용해서 풀면 쉽게 해결할 수 있다. function solution(park, routes) { const n = park.length; const m = park[0].length; let start; for(let i = 0; i
2024.03.23