본문 바로가기
728x90

알고리즘141

[BOJ/Python] 2096. 내려가기 📌 문제 https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 📌 문제 접근 방법 처음엔 dfs를 사용해서 최소값, 최대값을 갱신시켰는데 숫자가 많아질수록 모든 숫자를 저장하는 자체에서 메모리 초과가 발생하는 것 같았다. 따라서 입력 숫자를 저장하지 않고 입력받자마자 바로 사용할 수 있도록 dp를 사용해서 구현했다. 아래줄의 입장에서 0번째 숫자는 윗줄의 0, 1번째 숫자를 더할 수 있고, 1번째 숫자는 윗줄의 모든 숫자, 2번째 숫자는 윗줄의 1, 2번째 숫자를.. 2021. 12. 8.
[PG/Python] 불량 사용자 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 📌 문제 접근 방법 banned_id를 하나씩 순회하며 banned_id가 될 수 있는 후보 리스트를 able_banned에 저장했다. 후보 리스트를 하나씩 순회하며 재귀를 이용해서 불량 사용자 리스트를 만들었다. 중복을 체크해주기 위해서 sort한 후 answer에 저장했다. 불량 사용자 리스트의 경우의 수가 저장된 answer의 길이를 반환한다. 📌.. 2021. 12. 8.
[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.
728x90