차곡차곡 성 쌓기
스프링 : 빈 등록하기
스프링 부트 2023. 12. 14. 17:32

🫛 빈 등록하기 방법 1 : 자바 코드로 등록하는 방법 @Configuration @Configuration public class SpringConfig { @Bean public MemberService memberService(){ return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } } 스프링 컨테이너가 MemberService 와 MemberRepository 를 스프링 빈으로 등록한다. 등록된 MemberRepository를 멤버서비스에 넣어준다. 방법 2 : 애노테이션 이용 @Service, @Contr..

article thumbnail
[백준] 꿀 따기 : 21758 : JAVA
알고리즘/백준 2023. 12. 9. 00:50

1. 🍅 문제 21758번: 꿀 따기 첫 번째 줄에 가능한 최대의 꿀의 양을 출력한다. www.acmicpc.net 2. 🤔 어떻게 풀까? 구해야 되는 것 : 얻을 수 있는 최대 꿀의 양 조건 : 벌 2마리가 지나가면 꿀을 채취할 수 있음, 단 벌이 시작한 위치에서는 어느 벌이든 채취하지 못함 조건 속에서 최대 꿀의 양을 구하기 위해 가능한 루트를 생각했다. 생각할 수 있는 루트는 3가지이다. 1. 벌 2마리가 같이 왼쪽에서 오른쪽으로 전진 2. 벌 2마리가 같이 오른쪽에서 왼쪽으로 전진 3. 벌 2마리가 양 끝에서 전진 이 3가지의 상황을 모두 따져가면서 해보면 최대 꿀의 양을 찾을 있지 않을까? ..하지만 경우의 수를 다 해보면 시간 초과가 날 것 같아서 더 좋은 방법이 없을까 고민하였다. 결국 찾을..

article thumbnail
[백준] 랜선 자르기 : 1654 : Java - 이분탐색 (S2)
알고리즘/백준 2023. 12. 3. 21:55

1. 🍅 문제 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 2. 🤔 어떻게 풀까? 이 문제는 이분탐색의 바이블같은 문제이다. 이분탐색 막 처음 배울 때 이 문제를 여러 번 봤었다. 나한텐 DP의 계단 오르기 문제와 같은 느낌이다. 아무튼! 어떻게 풀지 고민을 해보자. 문제를 요약하면 구해야 되는 것은 '주어진 K개의 랜선을 잘라 같은 길이의 n개 이상의 랜선을 만들 때 자를 수 있는 랜선의 최대 길이는?'이다. 결국 임의로 랜선의 길이를 설정하여 K개의 랜선들을 모두 잘라보는 ..

article thumbnail
[백준] 쉬운 계단 수 : 10844 : Java - DP (S1)
알고리즘/백준 2023. 12. 3. 00:26

1. 문제 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 길이가 N인 계단 수가 몇 개? 계단 수란 인접한 모든 자리의 차이가 1인 수를 말한다. 1

article thumbnail
[백준] 파일 합치기3 : 13975 : Java - 그리디 (G4)
알고리즘/백준 2023. 12. 2. 19:39

1. 💎 문제 13975번: 파일 합치기 3 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫 줄에 주어진다.각 테스트 데이터는 두 개의 행으로 주어지는데, www.acmicpc.net 모든 장을 합쳤을 때 최소 비용을 구한다 2개를 선택해서 더한다. 2. 🤔 어떻게 풀까 최소의 비용을 얻을 수 있는 방법은? 예제를 통해 어떤 경우에 최소가 될 수 있는지 분석했다. 알아낸 점은 일찍 선택할 수록 더 많은 횟수를 더하게 된다는 점이었다. 이 문제는 합쳐진 것도 계속 더해가면서 누적을 해야되기 때문이다. 그래서 최대한 작은 수대로 먼저 2개씩 더해야겠다고 생각했다. 생각을 적용해서 다시 예제를 풀어보니 개별 파일 중에서 가장 작은 ..

article thumbnail
[백준] 점프 : 1890 : Java - DP (S1)
알고리즘/백준 2023. 11. 29. 17:51

1. 💎 문제 1890번: 점프 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장 www.acmicpc.net 2. 🤔 어떻게 풀까 현재 위치에서 이동할 수 있는 경우의 수는 2가지 뿐이다. 오른쪽 또는 아래로 현재 칸에 적혀있는 수만큼 이동하는 것이다. 그러므로 위치마다 2가지 경우를 고려하여 경우의 수를 누적한다. 코드가 짧아 바로 전체 코드로 간다. 3. 🖥️ 전체 코드 행렬의 순서대로 요소를 탐색한다. 현재 칸에 적혀있는 수만큼 오른쪽, 아래로 이동하여 이동한 위치의 경우의 수를 증가시킨다. int length = (int)map[i][j..

article thumbnail
[백준] 배 : 1092 : Java - 그리디 (G5)
알고리즘/백준 2023. 11. 29. 00:28

1. 💎 문제 2. 🤔 어떻게 풀까 N개의 크레인 -> 동시에 이용 가능 각 크레인에는 실을 수 없는 무게 제한이 있음(포함) 이 두가지 조건을 중심으로 생각했다. 최소의 시간이 걸리기 위해서는 크레인들에게 균형있게 화물을 분배해줘야 한다. 이때 무게가 작은 박스는 어떠한 크레인이든 사용할 수 있지만, 무게가 커질 수록 사용할 수 있는 크레인은 적다. 그러므로 무게가 무거운 박스를 어떻게 분배하면 좋을지 생각했다. 해답은 무거운 박스부터 적절한 크레인을 선택하여 싣게하는 것이다. 적절한 크레인을 어떻게 고르냐 생각했을 때, 그 순간 무게 제한이 박스의 무게를 포함하면서, 이동시켜야할 박스의 수가 제일 적은 것을 선택하기로 했다. 결국 중요한 것을 균형있는 분배이다. 그러므로 제일 작업량이 작은 크레인을 ..

article thumbnail
[백준] DSLR : 9019 : Java - BFS, 최단 거리 (G4)
알고리즘/백준 2023. 11. 27. 14:43

1. 💎 문제 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 4개의 명령으로 A에서 B를 만들 수 있는 최소한의 명령어의 나열을 구한다. 나열이 여러가지면, 아무거나 출력한다. D : D 는 n을 두 배로 바꾼다. 결과 값이 9999 보다 큰 경우에는 10000 으로 나눈 나머지를 취한다. S: S 는 n에서 1 을 뺀 결과 n-1을 레지스터에 저장한다. n이 0 이라면 9999 가 대신 레지스터에 저장된다. L: L 은 n의 각 자릿수를 왼편으로 회전시켜 그 결과를 레지스터에 저장한다. 이 연..

article thumbnail
[백준] 테트로미노 : 14500 : Java - 구현 (G4)
알고리즘/백준 2023. 11. 26. 18:21

1. 문제 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 테트로미노는 정사각형 4개를 이어 붙인 도형이다. 5개 뿐이다. 주어진 테트로미노를 대칭, 회전 시켜도 된다. 하나의 테트로미노를 놓을 때 얻을 수 있는 최대 수들의 합을 구한다. 2. 어떻게 풀까 결국에 모든 테트로미노를 하나씩 놓아서 구해야한다. 하지만 도형의 회전을 어떻게 구현해야할까? 회전에 따른 규칙을 찾아 이용하고자 했는데, 도저히 규칙을 찾을 수가 없었다! 그래서 우선 풀고봐야하니 변수에다 도형 정보들을 대칭 빼고 다 하드 코딩으로 박았다...

article thumbnail
[백준] 경로 찾기 : 11403 : Java - BFS, 최단 경로 (S1)
알고리즘/백준 2023. 11. 25. 02:55

1. 문제 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net i번째 숫자가 j번째에 도달할 수 있는지 출력한다. 가능하면 1, 불가능하면 0을 출력 2. 어떻게 풀까? 입력으로 주어지는 형식이 인접행렬일 뿐 결국 간선의 정보이다. 그러므로 평소 풀던것 처럼 `ArrayList []`를 생성하여 간선의 정보를 저장한 뒤, 1부터 N번째 숫자를 차례로 BFS 탐색을 진행하기로 했다. 만약 1을 시작으로 BFS 함수를 호출하면 1에서 다른 요소인 {2,3,4,5,6} 에 도달할 수 있는 탐색을 통해 알아낸다. // 1부터 N까지 각 BFS 탐색 ..

728x90