목록2023/07 (38)
Dazzling 개발 노트
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/brwQF3/btspFmKxEIn/Oi8HG8NhpPZ4hIpZ1SHkQk/img.png)
[백준] 2579 - 계단 오르기 (Java) 문제 https://www.acmicpc.net/problem/2579 풀이/후기 점화식을 얻어내려고 정말 열심히 찾았는데,, 결국 못찾았다ㅠㅠㅠ 검색해서 점화식 확인해보니 조금만 더 생각했으면 도출할 수 있을 것 같기도 하고,, 살짝 아쉽다 코드 package DynamicProgramming; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Problem2579 { public static void main(String[] args) throws IOException { BufferedReader br = new B..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dgIn2j/btspCmKppXC/P3DTVlKoLjs950pfs0tyxk/img.png)
[백준] 2407 - 조합 (Java) 문제 https://www.acmicpc.net/problem/2407 풀이/후기 BigInteger 연산 주의!! 확률과 통계 이슈로 순열과 조합부터 복습이 필요했다..^^; 여기서 nPr은 반복문을 돌며 N-i을 곱하는 것으로 표현하고 r!은 i+1을 곱하는 것으로 표현 반복문을 마치면 그 결과를 나눠주면 됨 (다이나믹프로그래밍으로 풀기) 파스칼의 삼각형을 이용하여 풀이할 수 있다. 이차원 배열을 이용하여 파스칼 삼각형을 표현한다. 코드 package DynamicProgramming; import java.io.*; import java.util.*; import java.math.BigInteger; public class Problem2407 { stati..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/LIy63/btsplq7ft58/5UvQMUKENhyejeYXEdJzi0/img.png)
[백준] 9095 - 1,2,3 더하기 (Java) 문제 https://www.acmicpc.net/problem/9095 풀이/후기 이번 문제는 점화식을 쉽게 찾아낼 수 있는 문제였는데 집중력이 부족한건지,, 잘 생각이 안난다 ㅠㅠ 다이나믹프로그래밍은 점화식을 찾아내는게 가장 키 포인트라 그런지 수학 문제가 많이 나온다 나,, 수학 이렇게 재능 없던가? 코드 package DynamicProgramming; import java.io.*; public class Problem9095 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(S..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/WIKdg/btso8zFkTp0/Z5UjgGE13xSrycMJnFfek1/img.png)
[백준] 17626 - Four Squares (Java) 문제 https://www.acmicpc.net/problem/17626 풀이/후기 다들 패턴을 찾느라 오래걸렸다고 하는데 난 스스로 찾기는 커녕 이해하는데도 오래 걸렸다,,ㅋㅋ dp[1] = 1 dp[2] = dp[1] + 1 = 2 dp[3] = dp[2] + 1 = 3 dp[4] = 1 dp[5] = dp[2^2] + dp[1] = 2 dp[6] = dp[2^2] + dp[2] = 3 dp[7] = dp[2^2] + dp[3] = 4 dp[8] = dp[2^2] + dp[2^2] = 2 숫자 i는 자신의 제곱수(dp[j*j])들을 기준으로 제곱수를 뺀 나머지 값의 합을 구하면 된다. → 따라서 점화식은 dp[i] = dp[i- j*j] + ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cpiTMO/btsFeExCB4W/vOdoBSGEkVl7WrNfwb2wHk/img.png)
프레임워크란? 웹 개발에서 프레임워크는 어떠한 목적을 쉽게 달성할 수 있도록 해당 목적과 관련된 코드의 뼈대를 미리 만들어둔 것을 의미한다. 즉, 특정 종류의 소프트웨어를 개발할 때 사용할 수 있는 재사용 가능한 표준 방법을 제공하는 코드의 집합이다. 개발자가 소프트웨어나 애플리케이션을 더 빠르게, 효율적으로 개발할 수 있도록 기본적인 구조를 제공한다. 스프링(Spring)이란? 스프링은 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크이다. 엔터프라이즈 급의 애플리케이션을 쉽게 개발할 수 있도록 다양한 기능을 제공한다. 이는 강력한 의존성 주입(Dependency Injection)을 기반으로 하여, 애플리케이션의 구성 요소들 간의 결합도를 낮추고, 유지보수 및 테스트가 용이한 애플리케이션을 구축할..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dlndpL/btsoZLkBgq3/KWiTS8seJdNqwgbTdcxhh1/img.png)
[백준] 17143 - 낚시왕 (Java) 문제 https://www.acmicpc.net/problem/17143 풀이/후기 문제를 읽을 때는 좀 혼란스러웠지만 풀어보니 생각보다 엄청 어렵지는 않았다. 처음 입력을 받을 때 데이터를 어떤식으로 가지고 있을까 고민이 많았는데 sharkinfo라는 1차원 배열을 이용해 0에는 속력, 1에는 이동방향, 2에는 크기 이런식으로 생각하여 저장했다. (사실 이런 문제 나오면 입력 어떻게 받을지부터 한참을 고민하던 나였는데... 이렇게 바로 생각해낼 수 있어서 얼마나 뿌듯한지...!ㅎ) 그다음엔 문제에서 나온대로 차근차근 코드를 짰다. 어부가 map의 가장 오른쪽까지 이동하면 종료되고 이동할 때 가장 가까운 열의 상어를 잡은 후 상어가 이동하는 함수를 호출해주면 된..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/zIbYL/btsoZ0PvaqL/0VNvyw5RbN6xQ8JnF0h0iK/img.png)
[백준] 2839 - 설탕배달 (Java) 문제 https://www.acmicpc.net/problem/2839 풀이/후기 dp로 풀기 위해 점화식을 고민하여 풀었는데 오답이 나왔다. if (i % 3 == 0) { d[i] = d[3] * i/3; } if (i % 5 == 0) { d[i] = Math.min(d[i], d[5] * i/5); } if ((i-3) % 5 == 0) { d[i] = d[i-3] + 1; } if ((i-5) % 3 == 0) { d[i] = d[i-5] + 1; } 테스트케이스 입력 시에도 다 정답이고 내 이론상 틀린게 없었는데 검색을 해보니 이런 표가 있었다 하나씩 비교를 해보니까 16에서 걸렸다. 내가 푼대로 하면 16은 5를 빼도 3의 배수가 아니니 조건을 타지..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bySUod/btsoxqacDxu/MK56Qnl2cOIp4BI6wP1IBk/img.png)
[백준] 9655 - 돌 게임 (Java) 문제 https://www.acmicpc.net/problem/9655 풀이/후기 다이나믹 프로그래밍 연습을 위해 선택한 문제인데, 점화식을 찾기 위해 패턴을 찾다가 홀수이면 SK, 짝수이면 SY인 점을 찾았다. 그래서 한 번 홀수, 짝수로 구현해 보니 바로 정답이 나왔다. DP니까 DP로 풀면 어떻게 되는지도 같이 확인했다. (결국엔 동일함) 코드 package DynamicProgramming; import java.io.*; public class Problem9655 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new I..