Minjeong / 4월 3주차 / 4문제 #198
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🌱WIL
동전문제는 비슷한 문제를 과거에 풀이했음에도 2시간가량 붙잡아서 좀 현타가 왔다. 처음에 2차원 DP로 접근했고, 최대 범위인 10000 x 10000 배열을 미리 만들어서 접근하려고 했다. 하지만 메모리 낭비가 심하고 인덱싱 규칙이 복잡해 실패했다... 이런 경우는 테스트케이스마다 동전 종류가 다르므로, 미리 큰 범위를 계산해놓는 방식은 비효율적이라는 것을 알게 되었다.팰린드롬 공장문제는 너~무 어려워서 아직도 잘 이해가 안 간다.. DP는 대체 어디까지 어려울 수 있을까? 편집거리 알고리즘이라 생각했는데 이를 이 문제의 '팰린드롬 수' 개념에 맞춰 변형해야 하는 게 너무 헷갈리고 어려웠다.🚀주간 목표 문제 수: 3개
백준 #1759. 암호만들기: 그래프 / 골드1
정리한 링크: (바로가기)
🚩플로우 (선택)
L, 전체 알파벳 개수C를 입력받고is_valid정의backtrack정의L이면 종료backtrack([], 0)으로 시작한다.🚩제출한 코드
💡TIL
백준 #6603. 로또: 그래프 / 실버2
정리한 링크: (바로가기)
🚩플로우 (선택)
조합 풀이:
0이 입력되면 반복 종료k와 집합S를 분리하고한다.combinations(S, 6)으로 가능한 조합을 모두 구한다.백트래킹 풀이:
k와 집합S를 분리한다.backtrack(lotto, current)를 정의한다.lotto는 현재까지 고른 수current는 탐색을 시작할 인덱스🚩제출한 코드
조합 풀이:
백트래킹 풀이:
💡TIL
백준 #9084. 동전: DP / 골드5
정리한 링크: (바로가기)
🚩플로우 (선택)
T를 입력받는다.T번 반복하면서:N입력coins입력M입력dp[0] = 1로 초기화된dp배열을 생성dp갱신dp[M]을 출력한다.🚩제출한 코드
💡TIL
백준 #1053. 팰린드롬 공장: DP / 골드1
정리한 링크: (바로가기)
🚩플로우 (선택)
dp_ops(s)함수s를 받아서dp테이블을 채우고dp[0][n-1]반환ans = dp_ops(s)ans > 1일 때만(0이나 1이면 스왑해도 더 줄일 수 없음)s[i]와s[j]를 바꾼 새 문자열 만들기cost = 1 + dp_ops(swapped_string)계산cost < ans이면ans = costans출력🚩제출한 코드
💡TIL