본문 바로가기
728x90

완전탐색5

[PG/Python] 피로도 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 📌 문제 접근 방법 던전의 개수가 8개 이하이므로 완전탐색을 사용해도 되겠다고 판단하였다. permutations를 사용하여 던전을 들어가는 순서의 조합을 모두 만든 후, 각각의 조합을 차례대로 순회하며 입장할 수 있는 던전의 개수를 세었다. 개수를 다 세고 answer를 최대값으로 갱신하고, 반복문이 끝난 뒤 answer에 저장된 값을 반환하였.. 2021. 12. 22.
[SWEA/Python] 2383. 점심 식사시간 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 처음엔 dp로 풀어야하나 싶어서 아이디어를 짜는 데, 도저히 떠오르지 않았다. 결국 아이디어를 얻으려고 구글링을 해보니 완전탐색이 가능하다길래 완전탐색으로 풀기로 결정! 입력받은 2차원 배열에서 사람의 위치와 계단의 위치를 찾아서 각각 people과 stairs에 저장해줬다. people은 조합을 이용해서 두 그룹으로 나누었고 첫 번째 그룹과 첫 번째 계단, 두 번째 그룹과 두 번쨰 계단을 각각 go_for_lunch 함수에 넣고 실행해서 둘 중 더 큰 시간을 해.. 2021. 12. 7.
[SWEA/Python] 2105. [모의 SW 역량테스트] 디저트 카페 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 목표하는 지점까지 도착해야 끝나므로 dfs! 어차피 디저트가 중복될 수 없으므로 방문체크는 안해줬다. 사각형을 그리는 경우, 현재 위치를 기준으로 위로 올라가는 사각형과 아래로 내려가는 사각형이 있을텐데 결국 중복되므로 한가지 방향만 생각해주면 된다. (사각형 하나를 만들때 방향 전환은 딱 3번만 해주면 된다.) 현재 위치에서 이동할 수 있는 경우의 수는 직진과 꺾어서 가는 경우 2가지 위의 2가지를 완전 탐색하고 최대 값을 출력한다. 📌 코드 import sys.. 2021. 10. 12.
[SWEA/Python] 1244. 최대 상금 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 앞 쪽에 위치한 숫자판보다 큰 숫자가 뒷쪽에 있다면 그 둘을 바꾸는 방법 → 32888 같은 경우에 틀리게 된다. 모든 경우의 수를 다 찾아서 비교해보자! → 재귀로 구현했으나 시간초과! 가지치기가 가능한가? 뒷 쪽 숫자가 더 클 경우에만 교환을 하는 방식 교환 횟수에 따라 따로 리스트에 값을 저장하여 중복을 방지 두 번째 경우엔 시간 초과없이 값이 잘 나왔다! 📌 코드 import sys sys.stdin = open('input.txt') def change(.. 2021. 10. 4.
728x90