코딩 테스트

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이 문제는 누적합 알고리즘을 이용한 문제이다. 처음에는 어떤 알고리즘을 적용해야할지 의문이 들었다. 처음에는 DP 알고리즘을 이용해 각 시간을 초 단위로 구분해 시청자를 구했다. 그렇지만 이 문제는 시청자 수를 구하는 문제가 아닌 가장 많은 시청 시간을 갖는 시간대를 구하는 문제이다. 결국 누적합 알고리즘을 적용해 기존에 구해둔 시청자수를 이용해 누적 시청 시간을 구했다. 이 문제와 같이 자료의 수는 많아 2중 반복을 할 수 없으며, 이전까지의 결과값이 필요하고 범위가 지정되어 있는 문제의 경우는 누적합 알고리즘을 이용한 접근법 설계를 학습할 수 ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/60061 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이해당 문제는 각 기둥과 보의 설치/삭제에 대한 조건이 까다로운 문제이다. 나머지는 그닥 어려운 문제는 아니다. 우선 기둥의 설치부터 살펴보자.문제에서 기둥이 설치될 수 있는 조건을 아래와 같이 정의했다.기둥은 y가 0인 바닥일 때다른 기둥의 위일때보의 양끝(왼쪽 오른쪽)일때그렇다면 4가지 이외의 설치는 안된다는 것이다. 이를 이용해 기둥를 설치할 수 있는지 판별하는 함수를 만들어 주자. 그리고 보의 설치에 대한 조건을 알아보자.문제에서 ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42892 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 코드function solution(nodeinfo) { class Binary { constructor(idx, xPos) { this.idx = idx; this.xPos = xPos; this.left = null; this.right = null; } insert(idx, xPos) { if (xPos > this.xPos) { this.toRight(idx,..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이 문제는 오늘 서류 합격된 회사 코테를 보며 못푼 문제여서 분해서 풀게된 문제다....(분하다...) 이 문제는 각 상담원의 조합들 중 최적의 조합을 선택하는 문제이다. 상담의 종류가 최대 5개이고 상담건수가 최대 300개 이기 때문에 완전 탐색을 진행해도 시간복잡도가 여유로운 편이다.아오 이걸 테스트때 이상한 방법으로 접근했어.... 조합을 구했다면 각 상담원의 인원수에 맞게 총 걸린시간과 상담 종류를 갖는 자료를 만든다.이 자료를 사용하며 구현해야 하는 조건은 다음과 같다. 우선 대기중인 인원은 끝나는 시간이 가장 빠른 상담원과 연결된다. 그..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이해당 문제의 경우 각 인원별로 합산 점수와 두가지 점수를 비교해 등수를 책정해야 하는 문제이다. 문제의 접근법으로 누적합 알고리즘을 사용했는데, 근무태도 점수를 우선으로 내리 차순 정리(동점일 경우 평가 점수를 기준으로 올림 차순 정리)를 한 뒤 등 수를 누적합 알고리즘을 적용해 구하는 방식으로 접근했다. 이때 주의할 점이 누적합을 구현할 때 이미 점수 배열이 근무 태도 점수를 기준으로 정렬되어 있기 때문에 이전의 인원의 근무 태도 점수는 다음 인원보다 무조건 높으며 누적합 알고리즘을 구현할 때는 평가 점수를 이용해 등수를 계산하는 것이 좋다. 또..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이해당 문제는 출발 지점을 지나 중간 분기점을 거쳐 최종 목표까지 도달할 때 필요한 최소 금액을 구하는 문제이다. 하지만 단순히 최소 금액을 도출하는 것이 아닌 두 가지 도착 지점이 있다는 점이 이 문제의 조건에 존재한다. 이렇게 특정 비용의 최소 값을 구하는 문제의 경우 다익스라 알고리즘을 사용할 수는 있지만, 해당 문제에서는 효율성 테스트를 진행하고 문제에서 분기점을 거친다는 점도 존재하여 다익스트라 알고리즘에서 파생된 플로이드 위샬 알고리즘을 사용했다. 우선 각 지점에서 다른 지점까지 도달할 수 있는 최소 비용을 구해야 한다. 이는 DP를 사용..
58청춘
'코딩 테스트' 카테고리의 글 목록