FrontEnd/프로그래머스
[JS] 숫자게임
그리디 알고리즘을 활용해서 해결하였다. https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr A와 B를 우선 정렬해준다. 이후 각 팀의 가장 쌘놈부터 결투를 시킨다. 문제가 승점의 차가 최대의 격차로 나게하는 것이 아닌 절대적인 승점 자체를 가장 많이 받게 하는 방식이기 때문에 이게 가능하다. B에서 가장 쌘놈을 뽑아서 A에서 가장쌘놈과 싸우면서 이길수 있는 상대가 나올 때까지 선수를 교체시키면서 싸우면 된다. 조금 생각할 점은 A의 나머지 애들 다..
[JS] 셔틀버스 (2018 카카오)
이분탐색을 활용해서 해결하였다. https://school.programmers.co.kr/learn/courses/30/lessons/17678 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사실 지금생각하면 굳이 이분탐색이 필요할 것 같지는 않고 시뮬레이션을 돌리며 답을 도출해도 될 것 같다. 하지만 시간을 구하는 문제가 나올때 이분탐색을 활용하면 훨신 구조적으로 프로그램을 짤 수 있다. 시간이란 데이터는 항상 정렬되어 있기 때문이다. 이분탐색을 활용하면 문제접근법 자체는 매우 단순해진다. 1. 이분탐색으로 시간 검색 2. 해당 시간에 셔틀을 탈 수 ..
[JS] 길 찾기 게임
트리구조에 대한 정확한 이해가 있어야 해결할 수 있는 문제였다. https://school.programmers.co.kr/learn/courses/30/lessons/42892# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 풀기 전에 가장 중점적으로 봐야할점은 2가지이다. 1. 한번 왼쪽으로 간 노드는 부모의 x좌표를 넘어 오른쪽으로 갈 수 없다. 2. 한번 오른쪽으로 간 노드는 부모의 x좌표를 넘어 왼쪽으로 갈 수 없다. 우선 JS의 sort함수를 활용하여 level을 기준으로 노드를 정렬해준 후 level별로 노드를 저장해주었다. [ [],..
[JS] 디스크 컨트롤러
heap을 이용하여 해결하였다. https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사실 문제 제한사항이 널널한 편이라 sort함수를 써도 통과가 될 것 같긴 하다. ( 실제로도 다른 풀이를 보면 그런듯 ) 문제에서 중요한 점은 , 일을 처리할 수 있는 최소한의 경우의 수를 찾는 문제가 아닌 실제 테스크 큐가 작동하는 것처럼 현재 디스크가 일을 안하고 있다면 작업을 바로 수행하는게 요점이다. 따라서 테스크 큐 역할을 하는 heap을 하나 만들어서 ..
[JS] 섬 연결하기
union-find + 그리디 알고리즘을 활용해서 해결하였다. https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해당 문제는 그리디 알고리즘으로 해결할 수 있다. 우선 다리의 건설 비용을 오름차순으로 정렬을 해준다. 이후 정렬된 배열을 순회하며 두 다리가 연결이 안되어 있다면 연결해준다. 이 두 다리가 연결이 안되어 있는지를 확인하기 위해서 union-find 알고리즘을 활용하였다. 1. costs 배열을 비용을 기준으로 오름차순 정렬 2. co..
[JS] 매칭 점수
소요시간이 많이 걸린 구현 문제였다. https://school.programmers.co.kr/learn/courses/30/lessons/42893 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 특별한 알고리즘이 필요한 문제는 아니었고 문제에서 구현하라는 대로 풀면 되는 문제였는데 예외 케이스 때문에 스스로는 해결하지 못한 문제였다. 문제의 풀이 자체는 아래와 같다. 1. meta 태그에서 현재 url을 가져옴 2. a태그들을 파싱하여 외부 링크를 가져옴 3. 현재 기본 점수들을 확인함 4. 객체 형태로 외부링크,점수,최종 점수를 저장함. 이때 최종점..