본문 바로가기

공부53

[알고리즘][백준] 11722번 가장 긴 감소하는 부분 수열 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 11053번 가장 긴 증가하는 부분 수열의 응용문제! 달라진 것은 증가 -> 감소 이 부분이라 if문에서 num[i] > num[j]인 것을 num[i] 2024. 4. 2.
[알고리즘][백준] 11055번 가장 큰 증가하는 부분 수열 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가하는 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가하는 www.acmicpc.net 11053번 가장 긴 증가하는 부분 수열의 응용문제이다. 나는 바로 합계를 구하면 뭔가 꼬여서 답이 안나올줄 알고 일부러 dp를 2차원으로 숫자 [순서, 합]으로 2차원으로 만들었는데 꼭 그럴필요는 없다는 점... import sys n = int(sys.stdin.readline()) num = list(map(int, sys.stdi.. 2024. 3. 30.
[알고리즘][백준] 1932번 정수 삼각형 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net dp로 가장 유명한 문제가 아닌가 싶다! 처음 dp의 개념을 알기 위해 유튜브를 봤을때, 이 문제를 예시로 설명하는 영상을 봐서 문제를 보자마자 그 문제다! 이랬다 나의 아이디어는 가장자리는 그대로 내려와 더해지지만, num[i][0] = num[i-1][0] + num[i][0] num[i][-1] += num[i-1][-1] + num[i][-1] 중간에 있는 수는 두 가지 경우가 생겨 max로 더 큰 값만 저장해주어야 한다 num[i][j] = max(num[i-.. 2024. 3. 25.
[알고리즘][백준] 9465번 스티커 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 대각선끼리 더하는거보다 한번 건너 뛰어서 더하는게 더 커질때를 어떻게 해야할까 고민하게 되었다 아직 dp가 알듯말듯.... import sys t = int(sys.stdin.readline()) for _ in range(t): n = int(sys.stdin.readline()) sticker = [] # 스티커 2*n for _ in range(2): sticker.append(l.. 2024. 3. 19.