728x90
반응형

전체 글 278

[Java] 11055. 가장 큰 증가하는 부분 수열

점화식 초기 상태각 원소는 그 자체로 하나의 증가 부분 수열을 형성합니다.따라서 초기값:dp[i]=A[i](최소 합은 자기 자신)상태 전이인덱스 ii에서 가능한 이전 원소 jj를 탐색합니다:dp[i]=max⁡(dp[i], dp[j]+A[i]) (for all jdp[j]+A[i]: A[j]를 포함한 증가 부분 수열에 A[i]A[i]를 추가한 경우의 합.최종 결과모든 ii에 대해 dp[i]를 계산한 후:최대 합=max⁡(dp[0],dp[1],…,dp[n−1])  코드import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buff..

[Java] 2156. 포도주 시식

https://www.acmicpc.net/problem/2156문제 분석 과정이전에 두 잔을 연속으로 마셨다면 그 다음 잔은 마실 수 없습니다.최대 이전 3개의 값들까지만 기억하면 된다는 점을 이용해서 공간 최적화를 할 수 있습니다. 점화식dp[i−1]: 현재 잔 ii를 마시지 않고 이전 최적해를 그대로 가져오는 경우.dp[i−2]+array[i]: 이전 잔은 건너뛰고 현재 잔을 마시는 경우.dp[i−3]+array[i−1]+array[i]: 이전 잔과 현재 잔을 마시되, 두 칸 떨어진 잔은 건너뛰는 경우. dp[i]=max⁡(dp[i−1],dp[i−2]+array[i],dp[i−3]+array[i−1]+array[i])초기값 설정dp[0]=array[0]: 첫 번째 잔을 마시는 경우.dp[1]=arr..

[Java] 9465. 스티커

https://www.acmicpc.net/problem/9465문제 접근 과정선택 가능한 경우의 수양옆 불가: 같은 열의 다른 행에 위치한 스티커를 선택할 수 없습니다.위아래 불가: 인접한 대각선 방향의 스티커도 선택할 수 없습니다.대각선 가능: 한 칸 떨어진 대각선 또는 두 칸 떨어진 대각선의 스티커는 선택 가능합니다.한 칸 떨어진 대각선: 현재 스티커와 같은 열의 반대편 스티커에서 이어지는 경우.두 칸 떨어진 대각선: 현재 스티커와 같은 열보다 2칸 앞에 있는 반대편 스티커에서 이어지는 경우.한 칸 대각선과 두 칸 대각선을 포함한 세 칸 이상의 대각선은 이미 점화식에서 표현 가능합니다. 점화식DP 배열 정의dp[0][j]: 첫 번째 행의 j번째 열 스티커를 선택했을 때 얻을 수 있는 최대 점수.dp..

[Java] 2193. 이친수

https://www.acmicpc.net/problem/2193문제 접근 과정 이친수는 자리수를 기준으로 끝자리(0 또는 1)에 따라 앞의 숫자 조합이 결정됩니다.끝자리가 1인 경우:그 앞에는 반드시 0만 올 수 있습니다.끝자리가 0인 경우:그 앞에는 0과 1 모두 올 수 있습니다.  점화식DP 배열 정의:dp[length][0]: 길이가 length이고, 끝자리가 0인 이친수의 개수dp[length][1]: 길이가 length이고, 끝자리가 1인 이친수의 개수점화식:끝자리가 0인 경우:앞에 올 수 있는 숫자는 0과 1 모두 가능하므로: dp[length][0]=dp[length−1][0]+dp[length−1][1]끝자리가 1인 경우:앞에 올 수 있는 숫자는 0만 가능하므로: dp[length][1]..

[Java] 11057. 오르막 수

https://www.acmicpc.net/problem/11057문제 접근 과정오르막 수의 개수를 계산할 때, 오름차순으로 계산하는 것이 아닌, 맨 끝자리 숫자를 고정했을 때의 관점에서 접근하는 것이 핵심입니다.끝자리 고정 관점오르막 수는 끝자리 숫자가 0부터 9 중 하나로 고정될 때, 앞의 숫자들이 어떤 값을 가질 수 있는지 계산하는 문제로 바꿀 수 있습니다.예를 들어, 길이가 2이고 끝자리 숫자가 1이라면 가능한 오르막 수는 다음과 같습니다:01, 11 (끝자리 1로 고정)길이가 3이고 끝자리 숫자가 1이라면 가능한 오르막 수는 다음과 같습니다:001, 011, 111 현재 자릿수에서 가능한 경우의 수현재 자릿수의 끝자리 숫자가 j로 고정된 경우, 이 숫자는 이전 자릿수에서 끝자리 숫자가 0부터 j..

[JAVA] 10844. 쉬운 계단 수

https://www.acmicpc.net/problem/10844문제 접근 과정1자리 수는 모두 계단 수로 정의됩니다.1자리 수는 1부터 9까지 존재하며, 이는 모두 계단 수의 조건을 만족합니다. 따라서, 길이가 1인 경우 각각의 숫자(1~9)는 계단 수의 개수가 1개씩입니다.예외적으로, 문제에서 0으로 시작하는 수는 계단 수로 간주하지 않습니다.자릿수가 증가할 때, 숫자가 뒤에 추가된다고 가정합니다.숫자가 앞에 추가된다고 보는 것보다 뒤에 추가된다고 생각하는 편이 직관적입니다. 예를 들어, 길이가 3인 경우는 길이가 2인 계단 수의 뒤에 숫자를 추가하여 구성할 수 있습니다.예를 들어, 길이가 2인 계단 수 12에 숫자 3을 추가하면, 길이가 3인 계단 수 123이 됩니다.특수한 경우: 마지막 자리가 ..

[Java] nextInt()와 nextLine() 혼합 사용 문제

import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); for(int i = 0; i  scanner.nextInt()로 값을 입력받은 뒤, scanner.nextLine()을 사용하여 문자열을 읽을 때 예상치 못한 빈 줄이 입력이 됩니다. 이 문제를 해결하려면 nextInt()로 숫자를 읽은 후, nextLine()을 한 번 호출해 남은 줄바꿈 문자를 제거해야 합니다.문제의 원인scanner.nextInt()는 숫자만 읽고, 그 뒤에 있는 **줄바꿈 문자(\n)**는 입..

[파이콘 한국 2024] Pycon 한국 2024 후기 - 2일차

파이콘 두 번째날에 대해서 후기를 작성해 보겠습니다.개인적으로는 파이콘 두 번째날은 그닥 만족스럽지는 않았었습니다. 제가 파이콘에서 기대했던 거는 새로운 기술, 지식 이런 쪽이었는데 두번째 세션들은 대부분 경험 공유에 초점이 더 있었던 느낌이었기 때문입니다. 또한 제 관심사는 Backend, 보안 쪽이었는데 이쪽 기술 관련된 내용은 부족했던 것 같습니다.두 번째날 세션은 위와 같이 진행되었었고, 경험 공유는 흥미가 없어서 13:50 세션부터 저는 듣기 시작했었습니다. (처음부터 들으신 팀원분이 있으셨는데 저와 같이 경험 공유를 바라고 온 것은 아니시라서 별로였다고 하시더라고요. 그래서 시간 결정 잘한 느낌이었습니다ㅋㅋ) 첫 세션으로는 공정한 채점을 위한 PyPencil이었습니다. Automates ass..

나의 경험 2024.10.30

[파이콘 한국 2024] Pycon 한국 2024 후기 - 1일차

Pycon2024년 10월 26~27일 수원 컨벤션센터에서 진행된 Pycon에 다녀왔습니다. 인턴을 하고 있는 회사에서 시간되면 팀원들과 함께 다녀오면 좋을 것 같다고 하여 학교 시험이 바로 끝난 바로 다음날 파이콘을 다녀오게되었습니다! 파이콘 진행 일주일 전에 신청 후 시험 때문에 정신이 없어서 어떤 느낌의 행사인지 제대로 알지 못하고 행사 전날 밤에서야 세션을 찾아보게 되었습니다.1일차 세션은 위와 같이 진행되었는데, 오전 세션에는 크게 관심이 없어서 점심 이후에 파이콘에 참가하게 되었습니다. 회사에서 프론트엔드와 백엔드를 담당하고 있고, 백엔드에 FastAPI를 사용하고 있었기에 위 세션들 중에서 FastAPI with Dependency Injector라는 세션이 가장 궁금했고, Django에 관..

나의 경험 2024.10.26
728x90
반응형