목록Study (269)
전공공부
BFS 문제는 너무 많이 풀어서 유형을 외워 버린 탓에 쉽게 풀 수 있었다. Queue에 넣고 방문 여부 체크하고 문제에서 제시한 조건을 따라서 조건을 생성 한 후 반복문을 돌면서 큐의 값을 소진 시키면서 탐색을 진행 너무나 많이들 쓰는 풀이이기 때문에 따로 설명은 필요 없을 듯하다. 만일, 원래 갈 수 있는 땅인 부분 중에서 도달할 수 없는 위치는 -1을 출력한다. 이 조건을 간과하고 풀었다면 arr이 0로 초기화 되었을테니 잘못된 부분을 찾지 못해서 어려움을 느꼈을 수도 있을 것 같다. package BFS; import java.util.*; import java.io.*; public class BOJ_14940 { static int dx[] = {-1,0,1,0}; static int dy[]..
단순 구현 문제 - list 객체에 등수 구하기 위한 값들을 넣은 후 내림차순 sort 한 후 같은 값일 때는 가장 작은 등수로 인식이 되어야 하므로 조건문 통과를 위한 값은 lastIndex의 값으로 사용함 - 등수 출력시에는 index 처음 나온 위치 값을 사용함 아래는 코드이다. package Simulation; import java.util.*; import java.io.*; public class BOJ_1205_등수_구하기 { public static void main(String[] args) throws Exception{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer tk..

슬라이딩 윈도우(Sliding Window)는 배열 또는 문자열에서 연속적인 요소의 부분집합을 찾는 데 사용되는 알고리즘 기술 알고리즘은 주어진 문제의 해결을 위해 윈도우을 움직이면서 데이터를 처리하고 일부 조건을 충족하는 부분집합을 찾습니다. 이는 주로 부분집합의 합, 최대 길이 부분집합, 연속된 부분집합 등을 찾는 데 사용합니다. 1. 처음 시작과 끝으로 지정할 부분 집합의 길이 만큼 탐색한 후 데이터를 초기화 합니다. 2. 끝과 초기 인덱스를 이동하면서 윈도우 내부 데이터를 업데이트를 진행합니다. 아래는 부분 집합의 최대 합을 구하는 문제이다. public class SlidingWindow { public static int findMaxSubarraySum(int[] nums, int k) { ..
슬라이딩 윈도우 기법을 오랜만에 적용 해보아서 처음에 꽤나 헤맸던 문제다. aaabbaa 라는 문자열이 있으면 a의 갯수만큼 카운팅해서 그때의 존재하는 b의 갯수를 세면 총 옮겨야 하는 교환의 횟수가 된다. ababababab -> 중 a가 5개다. 즉, a 5개가 연속되면 된다. 그럼 여기서 ababa의 경우를 보면 b 두개 빼고 그 위치에 a 나머지 두개를 넣는다고 생각하면 된다. 이런식으로 생각을 하면 떠오르기가 쉬운데 처음에 캐치하기 힘들었던것 같다. 그리고, 문제 조건 중 원통의 구조로 마지막과 처음이 이어진 circle_queue 처럼 생각을 해야 하는 부분이 있다. 슬라이딩 윈도우가 처음이라면 블로그에 정리하였으니 찾아보면 좋을 것 같다. 슬라이딩 윈도우 슬라이딩 윈도우(Sliding Win..
감이 안 잡혀서 많이 참고하고 풀어 본 문제다. 최소 거리를 저장하는 배열을 두고 from -> to 갈 곳이 없을 때 계속 한 칸씩 앞으로 가는 것을 구현해내면 완성 할 수 있다. 상세 설명은 아래 코드와 함께 주석으로 적었다. package Graph; import java.io.*; import java.util.*; public class BOJ_1446 { static class Data { int to; int w; public Data(int to, int w) { this.to = to; this.w = w; } } public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(n..

Service 정의 : 애플리케이션 안 팎의 요소들과 통신을 할 수 있게 하는 요소입니다. 예시 : POD 간의 통신을 가능 할 수 있게 하는 요소입니다. 백엔드 POD 프론트 엔드 POD DB 등 External Connection to K8S 쿠버네티스 클러스터에 외부 사용자가 접근 하려면 어떻게 해야 할까요? SSH로 curl 요청으로 들어가서 하면 10.244.0.0으로 소통 할 수 있지만 이것은 사실 서버 내부에 들어와서 연결을 하는 것이니 지금 원하는 외부 요청이 아니다. NodePort 방식 노드 IP로 연결을하는 방법은 curl 192.168.1.2:30008 으로 연결을 하는 것인데 노드 포트로 연결해서 바깥에서 연결하는 방식이다. 이는 노드 포트 방식으로 부르기도 한다. 연결하는 방법은..
어떻게 kubectl 명령어가 적용이 되는지 알아보자. Local file을 이용해서 apply 명령어를 적용하면 쿠버네티스 내장 메모리에 오브젝트를 만든다. yaml 파일로 저장한 것은 Last applied Configuration (json) 파일로 변화가 됩니다. 이때 메모리와 yaml 파일 그리고 json 파일로 변환된 파일이 어떻게 상호 작용하는지 알아봅시다. nginx update to 18 -> 19로 업데이트가 될 때를 생각해봅시다. Local yaml 파일에서 우선 update를 할 것이고 그럼, k8s object가 이를 인지하고 바뀌게 됩니다. 그리고, Last applied Configuration을 저장하는 json이 바뀐 버전으로 업데이트 됩니다. 그러면 이때, Last app..
DP 문제 인 것을 인식하고 풀었는데도 많이 어려웠다. 해설을 위해서 아래 내용을 보자 우선 행의 경우 각 숫자의 순서를 나타내고 열의 경우 1,2,3 의 숫자가 마지막에 나올 때의 갯수를 표시한다. 아래 식은 갯수를 표시하지 않고 실제 식으로 표현을 하였다. dp[1][1] - 1 dp[1][2] - 0 dp[1][3] - 0 dp[2][1] - 1+1 dp[2][2] - 2 dp[2][3] - 0 dp[3][1] - (1 + 1) + 1 dp[3][2] - 1 + 2 dp[3][3] - 3 dp[4][1] - (1 + 1 + 1) + 1 dp[4][2] - (1 + 1) + 2 , 2 + (2) dp[4][3] - (1) + 3 dp[5][1] - (1 + 1 + 1 + 1) + 1 dp[5][2] ..