목록Study (268)
전공공부
모든 증명서에는 유효기간이 있습니다. 기간이 지날 때마다 ca 및 sigining request를 직접 ca 서버에 요청해야 합니다. 그런데 이는 전에 해봤듯이 매우 귀찮고 시간이 많이 가는 작업입니다. 그렇기 때문에 csr이라는 쿠버네티스의 자체 요청 파일을 만들고 Master 노드의 Contoller Manager가 csr 요청에 따른 작업을 처리 한 후 저희는 승인 비승인 여부만 결정하면 되는데요 이를 자세히 알아봅시다. 1. CSR이란? CSR은 공개 키 기반의 암호화 시스템에서 인증 기관에게 인증서를 발급해 달라고 요청하는 데이터 구조입니다. 즉, 클라이언트나 사용자가 자신의 공개 키를 제공하고, 이를 기반으로 인증서를 발급받기 위해 사용됩니다. 2. 쿠버네티스에서의 CSR 쿠버네티스에서 CSR..
설명 R로만 이루어진 문자열은 ㅋㅋ루ㅋㅋ 문자열이다. 단, 빈 문자열은 ㅋㅋ루ㅋㅋ 문자열이 아니다. ㅋㅋ루ㅋㅋ 문자열 양 끝에 K를 하나씩 붙인 문자열은 ㅋㅋ루ㅋㅋ 문자열이다. 부분 수열으로 더해지는 것을 생각을 하고 풀어야 이해가 되는 문제다. 처음 이해 자체가 되지 않아서 무슨 문제인지 파악하는 것이 어려웠다. KKK RKRRKRKRKRKR KK 일때, K 갯수가 2이고 여기서 중간의 R은 제외되어서 보여야 한다. 그래서, 이렇게 나누어진 것을 보면 최소 K 2*2 + 중간에 존재하는 R의 갯수 7개를 더하면 값이 나오는데 이런 방식을 투포인터로 반복하면서 나가면서 최댓값을 구하는 것을 코드로 구현하면된다. 다음에는 KK가 최소 값이 나왔으니 r을 줄여서 다음 KRKK 까지 탐색하여 한 번 더 체크하..
설명 2가지의 경우의 수를 먼저 고르고 O(N*N) 그리고 이때 투 포인터로 하나의 경우를 더 찾는 로직으로 눈사람을 설치 할 수 있다. 처음에 for문으로 투 포인터 방식을 생각하다가 잘 못 짜서 S는 무조건 상승하는 방식의 로직으로 구성해서 틀렸습니다가 많이 떴다. 생각해보면 S의 경우도 당연히 조건에 따라서 움직여야 하는데 생각이 얕아 고생을 했던 문제 총 시간 복잡도 : O(N^3) 코드 package two_pointer; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class BOJ_20366 { static int ans = Integer.MAX_VALUE; static L..
설명 같은 로직으로 C++으로 제출하면 맞는 정답이다. 자바의 경우 로직은 같으나 해당 코드로 통과되지는 않는다. 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.*; public class Main { static boolean [] visited; static int max; static int[] ans; static List[] graph; public static void main(String[] args) throws Exception{ BufferedReader in = n..
설명 로직을 따라서 폭탄을 설치한다. 그리고, 폭탄 설치시 이미 그 전에 설치된 폭탄이라면 다음번에는 폭발 할 수 있게끔 체크 하는 로직을 추가했다. 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { static char[][] map; static boolean[][] check; static int R, C, N; static int dx[] = {-1, 0, 1, 0}; static int dy[] = {0, -1, 0, 1}; public static void main(String[] a..
설명 시작 지점과 끝지점을 옮겨 가면서 값을 구하려고 했다. 부분합 문제처럼 생각하는 투 포인터는 아니고 두 수 간의 min 값을 개발자 능력치로 빼고 그 사이의 인원수를 곱하는 식으로 식을 짜서 최댓 값을 출력해야 하는 문제다. 그러면 생각해봤을때 서로 간의 최솟값을 기준으로 개발자 능력치를 뽑기 때문에 기준점이 되는 더 작은 수의 값을 가지는 쪽을 계속 움직여서 더 큰 수의 값을 찾게하고 이때의 서로 사이에 존재하는 개발자의 수를 가지고 계산하면 된다. 코드 package two_pointer; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; ..
설명 최단 거리로 가지는 곳을 찍으면 된다. 조건 중 벽에 막혀서 못 가는 부분만 -1으로 출력 하라는 부분을 신경쓴다면 일반적인 미로 탐색 로직 처럼 짜면 된다. 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.*; public class Main { static boolean [][] visited; static int map[][] ; static List[] graph; static int dx[] = {-1,0,1,0}; static int dy[] = {0,-1,0,1}; s..
설명 반대로 내가 찾아야 하는 곳에서 트리를 올라간다고 생각하고 방문 여부를 차차 검색하면 쉽게 풀 수 있는 문제였다. 처음에 트리를 구현해서 탐색하는 생각으로 접근 했다가는 뭔가 이상한듯 하여서 다른 풀이들을 참고 하였는데 굉장히 쉬운 방법이 이렇게 있었다. 코드 package tree; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class BOJ_20364 { public static void main(String[] args) throws Exception{ BufferedReader in = new BufferedReader(new InputStreamReader(System...