programmers 285

[Programmers 위클리 챌린지 8주차] 최소직사각형

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 8주차 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 그리디 하게 두 변 중 긴 변을 가로로 짧은 변을 세로가 되게끔 회전을 시킨 후 (가로길이의 최대 값) * (세로 길이의 최대 값)을 곱해주면 최소 직사각형 면적을 구할 수 있습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers] 로또의 최고 순위와 최저 순위

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 간단한 구현 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers 코딩테스트 고득점 Kit] 징검다리

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/43236 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr 이분 탐색을 활용하는 문제였습니다. 알고리즘은 아래와 같습니다. 1. rocks 벡터를 오름차순 정렬해줍니다. 2. 각 지점 사이의 거리 최솟값은 1, 최댓값은 distance로 설정해준 뒤 이분 탐색을 진행해줍니다. 2.1 mid 값보다 구간이 짧은 돌은 삭제해주고 삭제된 돌들이 n 이하인지 확인해줍니다. 2.2 n 이하라면 최소..

[Programmers 코딩테스트 고득점 Kit] 입국심사

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 매개변수로 주어진 자료형은 int지만 long long으로 변환해야 AC를 받을 수 있는 문제였습니다. 알고리즘은 아래와 같습니다. 1. times를 심사시간 기준 오름차순 정렬을 해줍니다. 2. 최소는 0, 최대는 [가장 오래 심사를 하는 사람 기준 * n]으로 잡고 이분 탐색을 진행해줍니다. 2.1 모든 사람이 심사를 받는데 성공하면 최댓값을..

[Programmers 코딩테스트 고득점 Kit] 단속카메라

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 차량의 대수가 최대 10,000대이므로 O(N^2)으로는 풀 수 없는 문제였습니다. 알고리즘은 아래와 같습니다. 1. routes 벡터를 차량이 고속도로에 진입한 지점을 기준으로 오름차순 정렬을 합니다. 2. 첫 번째 차량의 고속도로 탈출 지점에 카메라를 설치합니다. 3. 두 번째 차량부터 고속도로 진입한 지점과 기존 카메라 설치 지점을 비교합니다. 3.1 진입한 지점이 기존 카메라 설치 지점보다 앞서면 굳이 카메라를 추가로 설치하지 않아도 됩니다...

[Programmers 코딩테스트 고득점 Kit] 섬 연결하기

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 유니온 파인드를 사용하는 문제였습니다. 알고리즘은 아래와 같습니다. 1. 간선들을 가격 기준으로 오름차순 정렬을 해줍니다. 2. 정렬된 간선들을 모두 순회하면서 같은 그룹이 아니라면 섬을 연결하고 같은 그룹으로 만들어줍니다. 2.1 같은 그룹으로 만들어줄 때 가격을 answer에 더해줍니다. 3. 2번 과정이 끝나면 answer를 반환해줍니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers 코딩테스트 고득점 Kit] 구명보트

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 투 포인터를 이용하는 그리디 알고리즘 문제였습니다. 알고리즘은 아래와 같습니다. 1. 이인용 보트이기 때문에 최대한 짝을 맞춰서 보내야 합니다. 2. 즉, {그나마 가벼운 사람, 그나마 무거운 사람} 페어로 보내야 최대한 많은 짝을 이룰 수 있습니다. 3. 따라서, 몸무게를 기준으로 정렬을 진행한 뒤, 하나의 포인터는..

[Programmers 코딩테스트 고득점 Kit] 큰 수 만들기

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 알고리즘은 아래와 같습니다. 1. 우선, 정답을 앞에 k개의 숫자를 제거한 숫자로 세팅합니다. 2. 0 ~ [k - 1] 번째 숫자 중 answer 문자열의 앞쪽에 포함된 숫자보다 큰 숫자가 있을 수 있습니다. 2.1 해당 케이스가 성립할 경우 바꿔줍니다. 2.2 문자열의 앞쪽에 포함된 숫자가 해당 숫자보다 클 경우 다음 숫자와 비교해줍니다. 3. 2번 과정을 0 ~ [k - 1] 번째 숫자까지 적용해줍니다. 4. 정답을 반환합니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers 코딩테스트 고득점 Kit] 조이스틱

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/42860 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr ZZAAAZ와 같은 케이스처럼 오른쪽으로 갔다가 왼쪽으로 돌아가는 케이스도 있으므로 단순 한 방향만 정해서 풀 수 없는 문제였습니다. 알고리즘은 아래와 같습니다. 1. name과 똑같은 길이의 A로만 이루어진 문자열 temp를 선언합니다. 2. 동시에 왼쪽과 오른쪽으로 i칸을 움직이며 temp[i]와 name [i]가 다를 ..

[Programmers 코딩테스트 고득점 Kit] 체육복

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 체육복을 우선 왼쪽에 있는 사람으로부터 빌리는 것을 시도한 뒤 불가능하다면 오른쪽에 있는 사람으로부터 빌리는 것을 시도하도록 코드를 작성했습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~