본문 바로가기

알고리즘 (Python)12

[프로그래머스][Level3] 징검다리 건너기 (파이썬) 문제출처 https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 스스로 해결하였는가? -> O 이분탐색 아이디어를 떠올리기까지 그리 오래 걸리지 않았다. 하지만 효율성 검사를 통과하기가 꽤나 까다로웠다. 초기에 작성한 실패코드와 성공코드를 같이 놓고 어떤 차이가 있었는지 비교하자. 사용된 알고리즘 이분탐색 실패 코드 def solution(stones, k): left, right = 0, max(stones) while left = k: ri.. 2022. 8. 22.
[백준 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.