본문 바로가기

반응형

programmers

(30)
[프로그래머스] lv2-다리를 지나는 트럭(python) 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr TL;DR 큐(Queue) 구현(Implementation) 문제 요약 1. 모든 트럭이 다리를 건너러면 최소 몇 초가 필요한지 알아내는 프로그램을 작성해야 한다. 2. 다리는 수용할 수 있는 트럭의 수와 무게 제한이 있으며 제한을 넘지 않을 경우 트럭은 다리에 올라올 수 있다. - 제한을 넘지 않으면서 트럭이 다리를 건널 수 있는 최소 수를 구하는 프로그램이다. - 문제에 나온 조건들을 적절한 자료구조와 함께 구현해야 한다. 입출력 ..
[프로그래머스] 순위 검색(python) Programmers, 순위 검색 2021 KAKAO BLIND RECRUITMENT(2021년 카카오 공개 채용) TL;DR 구현(implementation) 이진 탐색(Binary search) 문제 요약 1. info에 지원자가 작성한 4가지 정보와 코딩 테스트 정보가 문자열로 구성된 배열이 주어진다. 2. query에 개발팀에서 궁금해하는 문의 조건이 문자열로 구성된 배열이 주어진다. 3. 개발팀이 궁금해하는 조건에 맞는 지원자의 수를 배열에 담아 반환하는 함수를 작성한다. 4. 개발팀이 궁금해하는 조건에서 '-'는 해당 조건을 고려하지 않는다는 뜻이다. 5. 문제의 경우 정확성과 효율성 평가가 포함되어 있다. - 지원자들이 작성한 조건과 코딩 테스트에서 개발팀이 원하는 조건에 해당하는 사람이 몇..
[프로그래머스] 최소 직사각형(python) Programmers, 최소 직사각형 프로그래머스 위클리 챌린지 8주차 TL;DR 배열(리스트, list/array) 구현(implementation) 문제 요약 1. 다양한 크기의 명함들을 모두 수납할 수 있으면서 작아서 들고 다니기 편한 명함 지갑을 만들어야 한다. 2. 조사된 명함의 크기들을 모두 넣을 수 있으면서도 가장 작은 지갑의 크기를 반환하는 함수를 작성해야 한다. 3. 명함의 경우 가로로 눕혀서 수납할 수 있다. - 가로와 세로 길이가 다른 명함의 크기가 조사된다. 이 때, 명함은 가로로 눕혀서 지갑에 넣을 수 있다. 이 말인 즉슨, 가로로 눕힌 명함. 즉, 주어진 가로의 길이와 세로의 길이를 반대로 했을 때도 조사해야 한다는 것이다. - 나는 이 문제를 모두 가로로 눕혔다고 가정하여 가로..
[프로그래머스] 튜플(python) Programmers, 튜플 2019년 카카오 개발자 겨울 인턴십 TL;DR 문자열(string) 문제 요약 1. 특정 튜플을 표현하는 집합이 담긴 문자열 s에 대해서 s가 표현하는 튜플을 배열에 담아 반환하는 함수 작성 - 중복된 원소가 없고 순서가 정해져있는 튜플에 대해서 튜플의 원소로 만들 수 있는 부분 집합들이 문자열의 형태로 주어진다. - 주어진 문자열들을 사용하여 본래 튜플을 찾아 반환하는 함수를 작성하면 된다. - 문제의 예시를 살펴보면 문제 해결 방법을 알아낼 수 있다. 입출력 형태 문제에서 설명한 것과 같이 튜플은 원소의 순서 또한 일치해야 동일한 튜플이라고 할 수 있다. 예시 1 :: 주어진 문자열이 {2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}를 나타내고 있고 정답..
[프로그래머스] 카펫(python) Programmers, 카펫 TL;DR 완전 탐색 문제 요약 1. 테두리가 갈색, 나머지 부분이 노란색으로 칠해져있는 카펫에 대해 노란색과 갈색의 각 격자의 크기의 수는 기억하고 있지만 전체 카펫의 개수는 기억하지 못한다. 2. 갈색과 노란색의 격자 개수를 통해 카펫의 가로, 세로 크기를 배열에 담아 반환한다. 3. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 길다. - 문제가 요구하는 카펫의 크기는 다양한 경우 중 최대한 정사각형에 가까운 크기를 반환해야 한다. - '테두리가 갈색으로 이루어져 있다'가 문제 해결의 가장 큰 힌트이다. - 테두리가 갈색으로 이루어져 있기 때문에 노란색의 가로와 길이는 전체 카펫의 길이보다 2씩 작다.(왼쪽-오른쪽, 위-아래) - 노란색의 크기가 될 수 있는 가..
[프로그래머스] 이진 변환 반복하기(python) Programmers, 이진 변환 반복하기 TL;DR 문자열(string) 구현(implementation) 문제 요약 1. 0과 1으로 이루어진 문자열에 대해 다음과 같은 이진 변환을 s가 1이 될 때까지 반복한다. 1-1. x의 모든 0을 제거한다. 1-2. 0이 제거된 x의 길이를 c라고 한다면 x를 c를 2진법으로 표현한 문자열로 바꾼다. 2. s가 1이 될때까지 반복된 이진 변환 횟수와 제거된 0의 개수를 반환한다. - 주어진 문자열이 1이 될 때까지 문제에서 요구하는 조건을 반복실행한 결과를 반환하면 된다. - 숫자를 2진법으로 바꾸는 `bin()` 메소드를 사용하여 문제를 풀 수 있다. 입출력 형태 예시 1 :: 예시 1의 문제를 문제에서 주어진 조건으로 해결하면 아래와 같다. 1. 0을 제..
[프로그래머스] 파일명 정렬(python) Programmers, 파일명 정렬 2018년 카카오 블라인드 채용 출제 문제 TL;DR 정렬(sort) 구현(implementation) 문제 요약 1. 주어진 파일명을 3개의 부분으로 나누어 기준에 따라 정렬을 하는 프로그램을 작성해야 한다. 2. 파일명은 HEAD, NUMBER, 입력 순으로 정렬된다. 2-1. HEAD는 숫자가 아닌 문자로 이루어져 있는 최소 한 글자 이상의 문자이다. 2-2. NUMBER는 한 글자에서 최대 다섯 글자 사이의 연속된 숫자로 앞쪽에 0이 올 수 있다. 2-3. 나머지 부분은 TAIL으로 숫자가 다시 나타날 수 있으며 아무 글자가 없을 수도 있다. - 문제에서 주어지는 조건을 만족시키면서 정렬할 수 있도록 구현하는 문제이다. - 주어진 입력을 HEAD, NUMBER,..
[프로그래머스] 전화번호 목록(python) Programmers, 전화번호 목록 TL;DR 해시(Hash) 문제 요약 1. 전화번호부에 여러 사람의 번호가 리스트 형태로 주어진다. 2. 주어진 전화번호 중 하나의 번호가 다른 번호의 접두어인지 확인한다. 3. 만약 접두어인 경우가 있으면 False, 없다면 True를 반환한다. - 접두어는 가장 앞에 오는 형태를 말한다. 입출력 형태를 통해 이를 확인할 수 있다. 입출력 형태 예시 1 :: '119'가 '1195524421'의 접두어가 되기 때문에 False를 반환한다. - 한 번호가 다른 번호의 접두어인 경우는 접두어가 되는 번호가 다른 번호에 포함되어 있으면서, 접두어가 되는 번호로 시작해야 한다. 예시 2 :: 그 어떤 번호도 다른 번호의 접두어인 경우가 없다. 예시 3 :: '12'가 '1..