완전 탐색
-
프로그래머스 문제 풀이 카펫24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 12. 12. 16:07
문제 URL 카펫 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이번에도 문제의 입력을 통해서, 문제를 파악해보도록 하겠습니다. 다음은, 첫 번째 입력입니다. 입력: brown = 10 red = 2 이 때, 만들 수 있는 직사각형은 문제의 그림처럼 빨간색 타일이 2x1 형태로 잡혀 있는 형태입니다. B B B B B R R B B B B B 따라서, [4, 3] 형태를 반환해야 합니다. 이번엔 두 번째 입력을 살펴봅시다. 입력: brown = 8 red = 1 이번엔 다음과 같이 빨간색 타일이 1x1 형태로 잡혀있을 때, 가장 큰 가로, 세로인 3x3인 사각형이 됩니다. B B B B R B B B B 이번엔 세 번째 예제입니다. 입력: brown = 24 red = 2..
-
프로그래머스 문제 풀이 숫자 야구24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 12. 11. 17:53
문제 URL 숫자 야구 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이번에도 문제의 입력을 통해서, 문제를 파악해보도록 하겠습니다. 다음은, 첫 번째 입력입니다. 입력: baseball = [ [123, 1, 1], [356, 1, 0], [327, 2, 0], [489, 0, 1] ] 여기서, 정답이 될 수 있는 경우의 수를 구합니다. 어떻게 구할 수 있을까요? 실제로 알아보기 위해서는 야구 게임을 해보는 수밖에 없습니다. 먼저, 야구게임에서 만들 수 있는 수들은 123 ~ 987까지 각 자릿수가 겹치치 않는 수들입니다. candidate = [123, 124, 125, ... , 987] //각 자릿수는 겹치지 않습니다. 이제 1Round를 시작해보죠. request..
-
프로그래머스 문제 풀이 소수 찾기24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 12. 10. 16:48
문제 URL 소수 찾기 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이번에도 문제의 입력을 통해서, 문제를 파악해보도록 하겠습니다. 다음은, 첫 번째 입력입니다. 입력: numbers = "17" numbers를 통해서 만들 수 있는 문자열의 모든 경우의 수는 다음과 같습니다. permutations = [ "1", "7", "17", "71" ] 각각 numbers에서 1개를 선택했을 때, 만들 수 있는 경우의 수와 2개를 선택했을 때 만들 수 있는 경우의 수를 합쳐진 것을 알 수 있습니다. numbers에서 1개를 선택했을 때 만들 수 있는 경우의 수: ["1", "7"] numbers에서 2개를 선택했을 때 만들 수 있는 경우의 수: ["17", "71"] 이 경우..
-
프로그래머스 문제 풀이 모의고사24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 12. 9. 17:34
문제 URL 모의고사 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 먼저, 문제를 파악해봅시다. 3명의 수포자는 다음 패턴으로 문제를 찍습니다. // 각 패턴은 다음 배열의 반복입니다. 1번 학생 = [1, 2, 3, 4, 5] 2번 학생 = [2, 1, 2, 3, 2, 4, 2, 5] 3번 학생 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] 첫 번째 입력을 살펴봅시다. 입력: answers = [1, 2, 3, 4, 5] 이 경우, 1번 학생은 5문제 다 맞히게 됩니다. answers = [1, 2, 3, 4, 5] 1번 학생 = [1, 2, 3, 4, 5] score = 5 //각 인덱스의 원소가 모두 같다. 2번 학생은 0개를 맞춥니다. answers =..
-
무식하게 풀기(Brute Force)24년 11월 이전/레거시-알고리즘 2019. 10. 15. 10:46
이 문서는 책 "알고리즘 문제 해결 전략"을 토대로 만들어졌습니다. Contents 무식하게 풀기란? 예제 1 - N까지의 합 예제 2 - N개 중 R개 고르기 결론 무식하게 풀기란? "Computer Science 정복하기" 두 번째 프로젝트 알고리즘의 첫 번째 장 "무식하게 풀기"입니다. 무식하게 푸는 것은 알고리즘 설계의 가장 기초로써, 컴퓨터의 빠른 성능을 이용하여 가능한 경우의 수를 모두 탐색하는 방법입니다. 흔히들 "Brute Force" 혹은 "완전 탐색 알고리즘"이라고 부르는 이 알고리즘 패러다임에 대해서 몇 개의 예제를 통해서 공부해보도록 하겠습니다. 참고적으로 이 알고리즘 패러다임은 문제를 반복되는 작은 조각으로 나누는 것입니다. 이를 위해서 재귀 호출을 이용한 반복문을 주로 이용합니다..