본문 바로가기

백준7

[백준 1107번][골드5] 리모컨 (파이썬) 문제출처 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 문제를 스스로 해결하였는가? -> X 입력조건을 확인하지 못한게 실패의 원인인 것 같다. 모든 문제든 입력조건만 제대로 확인하면 어떤 알고리즘을 쓸 수 있을지 어느정도 감이 온다는데, 나는 아직 습관이 안배여있어서 매번 체크하는걸 깜빡한다. 무튼 모든 경우의 수를 다 따져도 괜찮은 문제라는걸 알게되면 쉽게 풀 수 있는 문제다. 사용된 알고리즘 브루트포스 주의할 점 입력조건.. 2022. 8. 17.
[백준 11055번][실버2] 가장 큰 증가 부분 수열 (파이썬) 문제출처 https://www.acmicpc.net/submit/11055/47854662 로그인 www.acmicpc.net 문제를 스스로 해결하였는가? -> O 11053번(가장 긴 증가하는 부분 수열)문제와 거의 똑같다. 이 문제를 풀기 전에 11053번을 먼저 풀어서 쉽게 풀 수 있었다. 백준에 관련된 응용문제가 많은 것 같으니 다음에 참고할 수 있도록 정리해두자. 사용된 알고리즘 dp 풀이 전략 11053번과 아이디어는 똑같다. 다만 초기 dp값 설정이 다르고, dp값 안에 수열의 길이가 들어가는게 아니라 수열의 합이 들어가게 된다. dp[i]는 0부터 i까지 수열에서 A[i]를 포함한 증가 부분 수열의 합 중 가장 큰 값이다. 전체코드 n = int(input()) A = list(map(in.. 2022. 8. 17.
[백준 11053번][실버2] 가장 긴 증가하는 부분 수열 (파이썬) 문제출처 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 문제를 스스로 해결하였는가? -> X 한 번 풀었던 적 있는 문제다. 한번 푼 문제는 다시 안푸는 성격인데 11055번(가장 큰 증가 부분 수열)문제랑 거의 똑같아 보여서 복습할 겸 다시 풀었다. 근데 또 못풀었다... 비슷한 응용문제가 많은거 같은데 다음엔 까먹지 말고 제대로 풀자. 사용되는 알고리즘 dp 풀.. 2022. 8. 17.
[백준 14501번][실버3] 퇴사 (파이썬) 문제출처 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제를 스스로 해결하였는가? -> X 실버3이라고 만만하게 봐서는 안되겠다. 알고리즘 분류를 참고해 DP문제임을 알았는데도 아이디어가 떠오르지 않아서 결국 구글링했다. 아이디어를 캐치하니 코드는 금방 짤 수 있었다. 물론 아이디어 캐치하는게 제일 중요한 문제겠지만.. 무튼 아이디어를 시각적으로 잘 그려낸 블로그가 있어서 링크남긴다. DP 좀 잘 풀고싶다... 알고리즘 분류 DP 아이디어 퇴사일부터 역순으로 dp값을 계산해야한다. 전체코드 import sys input = sys.stdin.readline n = int(inp.. 2022. 8. 16.