92342. 양궁대회
·
Algorithm/Programmers
문제https://school.programmers.co.kr/learn/courses/30/lessons/92342제한사항 풀이class Solution { int[] answer = {-1}; int maxDiff = 0; public int[] solution(int n, int[] info) { dfs(n, 0, new int[11], info); return answer; } void dfs(int n, int idx, int[] ryan, int[] apeach) { if(idx == 11) { if(n ..
Reflection
·
Programming
리플렉션이란구체적인 클래스 몰라도, 런타임에 클래스의 정보(메서드, 필드, 생성자)를 읽고 조작할 수 있게 해주는 기능즉, 런타임에 타입을 동적으로 결정하고 사용할 수 있다.비유하자면, 리플렉션은 문을 모르고 열쇠도 없이 방 안을 들여다보고, 안에 있는 물건도 만질 수 있는 기술이다(보통 코드는 미리 문과 열쇠를 알아야 하지만, 리플렉션은 모른 채로 작동 가능)리플렉션이 필요한 이유프로그램 실행 중 어떤 클래스를 사용할지 모르는 경우Spring DI 컨테이너, ORM 매핑(JPA) 같은 시스템이 필요유연하고 확장 가능한 구조를 만들기 위해어디서 Class 객체를 얻을까Class.forName("클래스명") 호출 시 ClassLoader가 해당 클래스를 JVM 메모리 안에서 찾는다.메모리에 없다면. cla..
87946. 피로도
·
Algorithm/Programmers
문제https://school.programmers.co.kr/learn/courses/30/lessons/87946?language=java제한사항풀이import java.util.*;class Solution { static int answer = -1; public int solution(int k, int[][] dungeons) { int n =dungeons.length; boolean[] visited = new boolean[n]; dfs(dungeons, k, 0, visited, 0); return answer; } void dfs(int[][] dungeons, i..
17. Letter Combinations of a Phone Number
·
Algorithm/LeetCode
문제https://leetcode.com/problems/letter-combinations-of-a-phone-number/description/제한사항풀이 import java.util.*; class Solution { public List letterCombinations(String digits) { Map> map = new HashMap(); if(digits.equals("")) return new ArrayList(); map.computeIfAbsent('2', k-> List.of("a", "b", "c")); map.computeIfAbse..
macOS에서 Harbor 레지스트리 인증서 설정하기
·
Programming
MacOS에서 Docker 클라이언트가 사설 Harbor 레지스트리 통신하기 위해서 두 가지 주요 인증서 설정 작업이 필요하다.1. Docker 전용 인증서 디렉토리에 CA 인증서 추가mkdir -p ~/.docker/certs.d/192.168.151.109/cp ca.crt ~/.docker/certs.d/192.168.151.109/ Docker 클라이언트가 특정 레지스트리와 통신할 때 사용할 인증서 제공Docker 애플리케이션에만 국한된 설정Docker 자체 인증서 검증 메커니즘에 필요MacOS는 Docker Desktop을 사용하기 때문에 우분투 환경에서 설정하는 경로와 차이가 있다. 우분투 환경에서 설정 한다면 아래 명령어를 사용해야 한다.mkdir -p /etc/docker/certs.d/1..
우분투 Harbor HTTPS 설정을 위한 인증서 생성
·
Programming
Harbor HTTPS 설정을 위한 인증서 생성 과정인증 기관(CA) 인증서 생성테스트 환경이므로 외부 인증 기관 대신 자체 서명(Self-signed) 방식으로 CA 인증서를 생성한다.CA 인증서(ca.crt)는 CA의 개인 키(ca.key)를 기반으로 발급한다.# 인증서 디렉토리 생성mkdir ~/certcd ~/cert# CA 인증서 개인 키 생성openssl genrsa -out ca.key 4096# CA 인증서 생성: CN에 Harbor를 설치할 서버의 IP주소 입력openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.151.109" \..
42898. 등굣길
·
Algorithm/Programmers
문제https://school.programmers.co.kr/learn/courses/30/lessons/42898?language=java제한사항 풀이class Solution { public int solution(int m, int n, int[][] puddles) { int answer = 0; int[][] dp = new int[m+1][n+1]; int[][] map = new int[m+1][n+1]; for(int i = 0 ; i회고처음에는 단순한 DFS 문제라고 생각했지만, 이 문제는 최단 경로의 길이가 아닌 경우의 수를 구하는 문제이기 때문에 DFS는 시간 복잡도 측면에서 적절하지 않다고 판단했다. 출발지와 목적지가 고정되어 있고, 경로는 항상 오른쪽..
12927. 야근 지수
·
Algorithm/Programmers
문제https://school.programmers.co.kr/learn/courses/30/lessons/12927제한사항풀이import java.util.*;class Solution { public long solution(int n, int[] works) { long answer = 0; // 최대 힙을 위한 람다 표현식을 사용한 Comparator 정의 PriorityQueue pq = new PriorityQueue((a, b) -> b - a); for (int work : works) { pq.add(work); } for (int i = 0; i 0) { pq..
403. Frog Jump
·
Algorithm/LeetCode
문제https://leetcode.com/problems/frog-jump/description/제한 사항풀이class Solution { public boolean canCross(int[] stones) { Map map = new HashMap(); int n = stones.length; // 빠른 조회를 위해 HashMap에 돌 위치 저장 for(int i = 0 ; i회고DP 문제이면서도 제한 조건의 범위가 크지 않아서 O(n^2)을 허용하는 문제였다. DP 배열을 정의하는 것이 쉽지 않았다. 그리고 최대 점프 길이 반드시 알아야 하는 문제였다. k는 1부터 시작해서 k-1, k, k+1 중 하나의 길이만큼 점프를 한다. 점프한 만큼의 ..
42884. 단속 카메라
·
Algorithm/Programmers
문제https://school.programmers.co.kr/learn/courses/30/lessons/42884?language=java제한 사항풀이import java.util.*;class Solution { public int solution(int[][] routes) { int answer = 0; Arrays.sort(routes, (r1, r2) -> r1[1] - r2[1]); int camara = -30001; for(int i = 0 ; i 회고막상 구현은 간단한데 아이디어가 쉽게 떠오르지 않은 문제였다. 존재하지 않는 위치에 임의로 카메라를 두고(..