개인공부

문제 링크 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 💡문제 분석 요약 탐색 알고리즘 중 하나인 BFS를 활용하여 문제를 풀이하면 쉽다. DFS를 떠올릴 수 있으나, 이 문제에서 DFS은 적절한 방법이 될 수 없다. 효율성이 떨어지기 때문이다. - 최단 경로 찾기의 비효율성: 현재의 문제는 가장 빠른 시간을 찾아야한다. 하지만 DFS는 깊이 우선 탐색의 특성으로, 최적이 아닌 경로를 더 오랫동안 탐색하게 될 수 있어 적합하지 않다. 💡알고리즘 설계 BFS 알고리즘을 만..
문제 링크 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 💡문제 분석 요약 두 자연수의 최대 공약수(GCD)와 최소 공배수(LCM)을 구해야한다. 최대 공약수는 두수를 나머지 없이 나누는 가장 큰수를 의미한다. 최소 공배수는 두 수로 균등하게 나누어지는 가장 작은 수를 의미한다. 💡알고리즘 설계 GCD: a와 b의 GCD를 찾기위해 *유클리드 알고리즘을 사용한다. LCM: GCD를 찾으면, 공식(LCM = (a * b) / a와 b의 GCD)을 활용하여 계산한다. 💡코드 import java.util.* fun gcd(a: Int, b: Int): Int { return i..
문제 링크 17427번: 약수의 합 2 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 💡문제 분석 요약 자연수 A의 약수의 합은 f(A)이다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)이다. 자연수 N이 주어졌을 때, g(N)을 구해야한다. 1부터 N까지 각 숫자에 대하여 그 숫자의 모든 약수들의 합을 구해야 한다. n 의 상한(0 < n
문제 링크 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 💡문제 분석 요약 n 이 1, 2, 3의 합으로 표현될 수 있는 방법의 수를 찾는 것이다. 문제 n 을 구성하려면 명시적으로 두 개 이상의 숫자가 필요하다. n 의 상한(0 < n 3에 대하여 dp[i] = dp[i-1] + dp[i-2] + dp[i-3]가 된다. (dp[1] = 1, dp[2] = 2, dp[3] = 4.) 💡코드 const val MOD = 1_000_000_009 fun main() { val T = readLine()!!.toInt() val dp = LongArray(1_000..
백준 알고리즘 문제 원본 1783번: 병든 나이트첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다.www.acmicpc.net 방문할 수 있는 칸의 최대 개수를 구하는 문제는 조건에 따라 다양한 접근 방식이 필요하다. 이번 문제해결의 핵심은 체스판의 크기와 나이트의 이동 규칙을 분석하는 것이었다.문제 이해 병든 나이트는 4가지 방법으로만 이동할 수 있다.2칸 위로, 1칸 오른쪽1칸 위로, 2칸 오른쪽1칸 아래로, 2칸 오른쪽2칸 아래로, 1칸 오른쪽이동 횟수가 4번 이상일 경우, 4가지 이동 방법을 모두 사용해야 한다. 이러한 제약 아래에서 나이트가 체스판에서 방문할 수 있는 최대 칸 수를 찾아야 한다.해결 전략문제 해결을 위해 ..
·개인공부
DB 테이블에서는 관계에서 방향의 개념이 존재하지 않다. DB 테이블에서는 특정 테이블을 기준으로 원하는 정보를 JOIN하여 조회하기 때문이다. 즉, DB 테이블에서는 테이블 사이의 연관관계를 FK(외래 키)로 맺을 수 있고 방향 상관없이 조회가 가능하다. 하지만, 객체에서는 다른 엔터티의 정보를 갖고있지 않다면 조회(참조)가 불가능하다. 이로인해 DB 테이블에서는 없는 단방향, 양방향와 같은 방향의 개념이 존재한다. 따라서 DB 테이블에 실제 칼럼으로 존재하지는 않지만 Entity 상태에서 다른 Entity를 참조하기 위해 방향을 설정한다. OverView - 연관관계 어노테이션 - @OneToOne - @ManyToOne - @OneToMany - @ManyToMany 연관관계 어노테이션 JPA 는 ..