[Programmers] 모의고사 - python
2022. 11. 22. 23:59
Algorithm/BruteForce
문제 설명 문제 접근 방법 lv1의 문제인 만큼 경우의 수를 찾는게 매우 쉽다. 각 수험자는 찍는 패턴이 나오고 이것을 답과 비교하여 맞으면 맞는 개수를 올려주면 된다. 찍는 패턴은 일정 길이만큼 가다가 다시 반복되므로 인덱스에 배열의 길이만큼 나눈 나머지로 반복을 표현할 수 있다. 가장 많이 맞춘 사람을 골라야 하므로 1, 2, 3번이 맞춘 개수를 표현해야 한다. 정렬을 수행할 시에 인덱스가 뒤섞여 답을 내지 못하므로 [맞춘 개수, 수포자 번호]로 score을 정의하면 된다. 이후 정렬을 수행해 최대 값을 찾고, 해당 최대 값과 같은 값을 가진 친구의 수포자 번호를 answer에 넣으면 해결된다. 동일한 값을 가지는 경우에도 순서대로 찾으니 조건을 만족한다. 풀이 코드 def solution(answe..
완전 탐색의 접근방법과 사용할 수 있는 방법들
2022. 11. 22. 23:02
Algorithm/BruteForce
완전 탐색의 개요와 접근 방법 완전 탐색(Brute Force)의 개념은 말 그대로 모든 가능성을 계산하고 정답을 찾는 유형의 문제이다. 일반적인 완전탐색은 접근법만 알면 매우 쉬워져 까다롭게 만들 경우에 구현 문제도 같이 섞여 들어오는 경우도 있다. 우선 문제가 완전 탐색인가를 확인하기 위해서는 다음을 확인해보면 좋다. 계산해야할 입력 데이터의 길이나 범위 N의 값이 작다 모든 경우의 수를 찾는 방법이기 때문에 해당 경우의 수를 찾는데 시간이 꽤 소요되므로 1~2초 정도의 시간제한이 있는 문제라면 입력 데이터의 길이나 범위가 작을 수 밖에 없다. 그리디로 해결해보려고 할 경우에 최적해를 찾을 마땅한 방법이 떠오르지 않는다. 말 그대로 그리디로 해결해보려고 하면 최적해를 찾기 매우 힘들거나 방법이 잘 보..