본문 바로가기

프로젝트들/코딩 테스트59

[코딩테스트] 프로그래머스 - 입국심사 (Lv.3) in Python 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는 데 걸리는 시간이 담긴 배열 times가 주어질 때, 모든 사람이 심사를 받는 데 걸리는 최소 시간을 return하세요. programmers.co.kr/learn/courses/30/lessons/43238 풀이 - 입국심사에 드는 시간 중 최댓값 (최악의 경우)은 max(times) * n. - n은 최대 1억, times[i]는 최대 1분, times의 길이는 최대 10만 - 이렇게 변수의 크기가 크기 때문에, 최대한 알고리즘 수행 속도를 줄일 수 있게 이분탐색을 도입한다. - 기존 기본적인 이분탐색 문제와 다른 점은, 원하는 값이 mid와 같은 상황 - "Search 성공" -이, 꼭 우리가 원하는 답이라는 보장은 없다는 것이다. -.. 2021. 3. 9.
[코딩테스트] 프로그래머스 - 가사 검색(2020 Kakao) in Python 가사에 사용된 모든 단어들이 담긴 배열 words와 찾고자 하는 키워드가 담긴 배열 queries가 주어질 때, 각 키워드 별로 매치된 단어가 몇 개인지 순서대로 배열에 담아 반환하도록 solution 함수를 완성. ?는 한 글자를 나타내는 와일드카드이다. 예시: words = ["frodo", "front", "frost", "frozen", "frame", "kakao"], queries = ["fro??", "????o", "fr???", "fro???", "pro?"]일때, answer = [3, 2, 4, 1, 0] 잘못된 풀이 - 중첩의 중첩을 이용, 각 query마다 모든 단어의 모든 글자를 탐색하는 방법은, 역시나 효율성 테스트에서 실패했다. - words (100,000 이하), 각 가사.. 2021. 3. 9.
[코딩테스트] 프로그래머스 - 자물쇠와 열쇠 (2020 Kakao) in Python 열쇠를 나타내는 2차원 배열 key (N X N) 와 자물쇠를 나타내는 2차원 배열 lock (M X M)이 매개변수로 주어질 때, 열쇠로 자물쇠를 열수 있으면 true를, 열 수 없으면 false를 return 하도록 solution 함수를 완성. 열쇠는 90도씩 돌릴 수 있고, 열쇠와 자물쇠의 홈은 0과 1로 표시됨. programmers.co.kr/learn/courses/30/lessons/60059 문제 풀이는 프로그래머스 수업을 바탕으로 합니다. 풀이 - M과 N이 20 이하로 주어지기 때문에, 여러 번 회전하고 확장시켜도 효율성에 큰 영향은 없을 것이다. - 따라서 열쇠를 90도로 4번 회전시켜 모든 경우의 수를 확인 - 열쇠의 일부분만 자물쇠를 여는 데 쓰일 수도 있으므로, 자물쇠의 크기를.. 2021. 3. 8.
[코딩 테스트] 프로그래머스 - 괄호 변환 (2020 Kakao) in Python '('와 ')'로만 이루어진 문자열 s에서, 괄호들을 올바르게 배치해서 반환할 것. 이 문제는 문제 자체에서 알고리즘을 이미 나열해놨다. 이에 맞게 구현만 하면 되는 문제. 재귀적인 성질을 갖고 있다. programmers.co.kr/learn/courses/30/lessons/60058 문제 풀이 '균형잡힌 괄호 문자열' - (와 ) 개수가 맞을 때 '올바른 괄호 문자열' - 균형잡힌 괄호 문자열이면서, 짝도 맞을 때 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. 3. 문자열 u가 "올바른 괄호 문자열" 이라면 문자열.. 2021. 3. 8.