본문 바로가기
728x90

ALGORITHM/SW Expert Academy44

[SWEA/Python] 2383. 미생물 격리 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 주어진 정보를 어떤 형식으로 저장하는 게 가장 쓰기 편할까? 이 고민을 제일 많이 했다. 결국은 딕셔너리를 사용해서 좌표를 key로 미생물의 개수와 방향을 value로 저장했다. 그 다음 딕셔너리를 순회하며 temp라는 딕셔너리에 key값은 이동 후 좌표, value는 이동 전 좌표를 저장했다. 다시 temp를 순회하며 value 리스트의 길이가 2 이상일 경우 한 지점에 여러 미생물이 모이는 것이므로, 미생물의 수가 가장 큰 군집을 찾아서 방향을 설정해주고 모든.. 2021. 12. 7.
[SWEA/Python] 5658. 보물상자 비밀번호 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 N을 4로 나눠서 cnt에 저장하고 그만큼 회전을 시켜서 숫자를 생성하였다. 생성한 숫자는 four_num함수를 사용하여 4개로 잘라서 total에 저장하였다. total에서 중복을 제거한 후 내림차순으로 정렬하여 K번째에 있는 수를 10진수로 변환하였다. 📌 코드 # SWEA 5658 보물상자 비밀번호 from collections import deque def four_num(num): global total i = 0 for _ in range(4): tem.. 2021. 12. 7.
[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] 1795. 인수의 생일 파티 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 다익스트라 알고리즘 사용 처음에는 모든 인접한 노드의 시간을 갱신하고, 그 중 최소값을 찾아서 이동하였는데 시간초과 bfs를 사용해서 시간이 더 줄어드는 경로로만 이동하는 방식으로 구현했더니 통과하였다. 📌 코드 import sys sys.stdin = open('input.txt') def dijkstra(start, end): time[start] = 0 for _ in range(N): min_idx = -1 min_time = float('inf') for.. 2021. 10. 19.
728x90