본문 바로가기

컴퓨터 공학99

[백준] JAVA 자바 : 가장 긴 바이토닉 부분 수열 (11054번) 솔직히 이 문제를 처음 봤을 때 굉장히 난감했었다... 아니 이걸 어떻게 만들지?? 생각했었는데, 조금만 고민을 해보니 크게 어렵지 않게 해결할 수 있었다. i번째 인덱스 요소를 기준으로 1~i까지의 증가하는 수열과 i~N까지의 감소하는 수열을 구해서 합을 구하면 되는 문제였다. 자세한 건 코드를 보십시요! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class LongestBitonicSequence { public static int stoi(String str) { return Integer.parseInt.. 2024. 1. 27.
[백준] JAVA 자바 : 가장 긴 감소하는 부분 수열 (11722번) 증가하는 부분 수열을 반대로 만들면 된다. 이전 수열의 마지막 값보다 자신이 더 작다면 수열에 추가하고, 그게 아니라면 나부터 다시 수열이 시작하도록! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class LongestDecreasingSequence { public static int stoi(String str) { return Integer.parseInt(str); } public static void main(String[] args) throws IOException { BufferedReader b.. 2024. 1. 27.
[백준] JAVA 자바 : 가장 큰 증가하는 부분 수열 (11055번) 이것도 푼 지가 오래 돼서 정확히 기억은 안 나는데, 작성한 코드를 대충 봤을 때, 이전 수열의 합들과 내 값을 비교해서 더 큰 값을 자신의 dp배열에 저장하는 듯?? import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BiggestIncreasingSequence { public static int stoi(String str) { return Integer.parseInt(str); } public static void main(String[] args) throws IOException { Buffere.. 2024. 1. 27.
[백준] JAVA 자바 : 정수 삼각형 (1932번) 사실 이건 학교에서 알고리즘 수업을 들을 때 배웠던 알고리즘이라서 굉장히 쉽게 풀었다. 위에서부터 차례대로 내려오면서 바로 아래, 오른쪽 대각선 아래의 합을 저장하고 삼각형을 계속 내려오면 되는 것... import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class IntegerTriangle { public static int stoi(String str) { return Integer.parseInt(str); } public static void main(String[] args) throws IOException.. 2024. 1. 27.
[백준] JAVA 자바 : 포도주 시식 (2156번) 아 이거 한 일주일 전에 풀었는데 귀찮아서 안 올리다가 이제서야 올리게 됐는데... 어떻게 풀었는지 다 까먹었다......ㅋㅋㅋㅋㅋㅋㅋㅋㅋ /* 0: 직전꺼없음 1:직전꺼있음 dp[1][0] = wine[1]; // 6 dp[1][1] = 0; dp[2][0] = wine[2]; // 10 dp[2][1] = dp[1][0]+dp[1][1] + wine[2]; // 16 dp[3][0] = +wine[3]; // 19 dp[3][1] = dp[2][0] + wine[3]; // 23 dp[4][0] = + wine[4] // 25 dp[4][1] = dp[3][0] + wine[4] // 28 dp[5][0] = + wine[5] // 31 dp[5][1] = dp[4][0] + wine[5] // 33.. 2024. 1. 27.
[백준] JAVA 자바 : 스티커 (9465번) 어려운 줄 알았는데 막상 생각을 좀 해보니 생각보다 쉬웠던 문제다. 가로의 길이를 N으로 두고 1부터 올려가면서 점화식을 구하면 된다. N이 N+1이 될 때 가질 수 있는 최대 가치는, N에서 윗줄(아랫줄)을 선택했다면 N+1번째에는 아랫줄(윗줄)을 선택하는 것 혹은 N-1번째에서 큰 값중 N+1번째의 위아래를 더하는 값 중 하나로 결정된다. 솔직히 이것도 글로만 보면 이해가 안 돼서... 코드로 보고 이해하심 됩니다ㅋㅋ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Sticker { public sta.. 2024. 1. 23.
반응형