알고리즘/프로그래머스(24)
-
[프로그래머스] 디스크 컨트롤러- 파이썬 python
코딩테스트 - 힙(Heap) - 디스크 컨트롤러 [Level3] 문제링크 : 디스크 컨트롤러 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 문제풀이 Heap 문제입니다. 그런데 저는 힙 없이 사용했습니다. 일단 가장 먼저 핵심적인 것은 "할 수 있는 작업에서 시간이 짧은 거부터 시작한다"라는 점입니다. 긴 작업 소요시간이 걸리면 그만큼 시간이 남은 작업만큼 배로 더해지기 때문입니다. 처음에 jobs를 "작업이 요청되는 시점, 작업의 소요시간" 순으로 정렬합니다. (정렬이 안되어 있음!!) jobs의 처..
2022.06.07 -
[프로그래머스] 입국심사 - 파이썬 python
코딩테스트 - 이분탐색 - 입국심사 [Level3] 문제링크 : 입국심사 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 문제풀이 이분탐색 문제입니다. 정답 시간의 범위를 생각하면 최솟값은 "1" 최댓값은 "가장 오래 걸리는 시간 X n명" 사이에 정답이 있습니다. 이제 최솟값과 최댓값의 중간값을 기준으로 해당 시간 때의 사람 수를 구해서 최소, 최대 시간을 중간값으로 이동하며 범위를 줄입니다. 1. 해당 시간에 사람이 더 많다? 최댓값을 중간값으로 해서 범위 줄이기 2. 해당 시간에 사람이 더 적다? 최솟값을..
2022.06.06 -
[프로그래머스] 모의고사 - 자바스크립트 JS
[Level1] 코딩테스트 연습 - 완전탐색 - 모의고사 문제링크 : 모의고사 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 문제풀이 패턴을 따로 배열에 저장한 이후 answers의 한 원소마다 순회하며 정답을 체크합니다. 정답 패턴이 넘어가는 것을 방지하기 위해 % 를 통해 순환하도록 만듭니다. 각 삼인방에 정답을 맞힐 때마다 카운트할 수 있는 배열을 만듭니다.(count) Math.max를 활용해 카운트 값 중 최댓값을 구하고 해당 값을 출력합니다. 풀이 코드 가장 인기 많은 답변 filter를 사용했다..
2022.06.03 -
[프로그래머스] K번째수 - 자바스크립트 JS
[Level1] 코딩테스트 연습 - 정렬 - K번째수 문제링크 : K번째수 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 문제풀이 forEach를 통해서 배열 안에 있는 조건을 순회합니다. 구조분해 할당을 사용해서 해당값을 받아줍니다. (start, end, target) (한번 배열에 안넣고 해봤는데 안되네요 ㅎㅎ;) 그리고 slice를 활용하여 배열을 잘라줍니다. 자른 배열을 정렬하고 target를 answer 배열에 넣으면 끝! 풀이 코드 가장 인기많은 답변 filter를 사용하고 sort를 체이닝해서 구현했다는 점 저와는 다르게 slice를 사용한게 아닌 filter..
2022.06.03 -
[프로그래머스] 체육복 - 자바스크립트 JS
[Level1] 코딩테스트 연습 - 탐욕법(Greedy) - 체육복 문제링크 : 체육복 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 문제풀이 가장 먼저 체크할 부분은 이 부분입니다. 여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다. 여분의 체육복을 가지고 있고 도난당한 교육생을 제외하기 위해서 lost와 reserve의 교집합을 제거하고 시작합니다. 이후 교집합을 제거한..
2022.06.03 -
[프로그래머스] 수식 최대화 - 파이썬 python
2020카카오 인턴쉽 - 수식 최대화 [Level2] 문제링크 : 수식 최대화 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 문제풀이 1. 연산자는 3가지 밖에 사용안되므로 6가지 순서 나열 (이는 itertool을 통해서 permutation을 가져와도 된다.) 2. operate 함수를 통해서 연산 3. calc함수를 통해서 주어진 연산 순서에 맞게 계산 4. abs를 통해서 절대값이 가장 큰값을 고른다.
2022.05.16