본문 바로가기

전체 글138

Programmers - 표 편집(Java) https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 풀이 삭제와 복원 기능의 시간을 최소화하는 Linked List를 이용하여 풀이 Node의 연결 관계만 변경하면 삭제된 Node가 있더라도 이동 명령을 수행하기 편함 Linked List 정의 및 초기화 입력값 n의 최대값 만큼 Node 배열을 생성 0 ~ n-1 의 Node의 prev/next를 이전/다음 No.. 2022. 2. 8.
Programmers - 사라지는 발판(Java) https://programmers.co.kr/learn/courses/30/lessons/92345 코딩테스트 연습 - 사라지는 발판 [[1, 1, 1], [1, 1, 1], [1, 1, 1]] [1, 0] [1, 2] 5 [[1, 1, 1], [1, 0, 1], [1, 1, 1]] [1, 0] [1, 2] 4 programmers.co.kr 풀이 다음 2가지의 경우에 승패가 결정됨 상하좌우 4방향 중 어떠한 방향으로도 이동 불가인 경우 하나의 발판에 2명이 위치할 때, 한명이 다른 발판으로 이동하여 현재 발판이 사라질 때 지는 플레이어든 이기는 플레이어든 각자 최적의 플레이로 진행 이기는 플레이어 - 최대한 빨리 승리하는 방향으로 진행 -> 움직이는 횟수를 최소화 지는 플레이어 - 최대한 오래 버티는.. 2022. 2. 3.
[Kubernetes] RBAC, Role, RoleBinding(Authorization) 쿠버네티스 접근제어 체계 Authentication : 접속한 사람의 신분을 시스템이 인증하는 단계 -> 신분증 확인 Authorization : 어떤 권한을 가지고 어떤 행동을 할 수 있는지 확인하는 단계 -> 사용자별 권한 확인 Admission Control : 인증과 권한확인 이후에 추가적인 요청내용에 대한 검증 또는 요청 내용 강제 변경 이러한 접근체계중 Authorization을 주제로 포스팅 RBAC(Role-Based Access Control) 쿠버네티스가 자원에 대한 권한을 지원하는 방법에는 여러가지 방법 중 대표적인 방법 역할 기반으로 권한을 부여하는 방법으로 Role, RoleBinding 오브젝트를 사용 누가(주체), 무엇을(동사), 어디에(네임스페이스) 실행할 수 있는지 결정하는.. 2022. 1. 30.
[Kubernetes] X509 Certs, kubectl, ServiceAccount(Authentication) 쿠버네티스 접근제어 체계 Authentication : 접속한 사람의 신분을 시스템이 인증하는 단계 -> 신분증 확인 Authorization : 어떤 권한을 가지고 어떤 행동을 할 수 있는지 확인하는 단계 -> 사용자별 권한 확인 Admission Control : 인증과 권한확인 이후에 추가적인 요청내용에 대한 검증 또는 요청 내용 강제 변경 이러한 접근체계중 Authentication을 주제로 포스팅 쿠버네티스 API 서버에 접근(Authentication)하는 3가지 방법 X509 Client Certs kubectl ServiceAccount 1. X509 Client Certs 쿠버네티스 클러스터에는 6443 포트로 API 서버가 열려있음 사용자가 이곳으로 https 접근하는 방법이며 Kube.. 2022. 1. 30.
Programmers - 파괴되지 않은 건물(Java) https://programmers.co.kr/learn/courses/30/lessons/92344 코딩테스트 연습 - 파괴되지 않은 건물 [[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5]] [[1,0,0,3,4,4],[1,2,0,2,3,2],[2,1,0,3,1,2],[1,0,1,3,3,1]] 10 [[1,2,3],[4,5,6],[7,8,9]] [[1,1,1,2,2,4],[1,0,0,1,1,2],[2,2,0,2,0,100]] 6 programmers.co.kr 풀이 단순 입력값에 대한 모든 요소를 갱신하는 방법으로 해결은 가능하지만, 효율성에서 시간초과 발생 - O(N * M * K)의 시간복잡도 (N = skill 횟수, M, K = 2중 for문) 시작점에 +N.. 2022. 1. 30.
Programmers - 양과 늑대(Java) https://programmers.co.kr/learn/courses/30/lessons/92343 코딩테스트 연습 - 양과 늑대 [0,0,1,1,1,0,1,0,1,0,1,1] [[0,1],[1,2],[1,4],[0,8],[8,7],[9,10],[9,11],[4,3],[6,5],[4,6],[8,9]] 5 [0,1,0,1,1,0,1,0,0,1,0] [[0,1],[0,2],[1,3],[1,4],[2,5],[2,6],[3,7],[4,8],[6,9],[9,10]] 5 programmers.co.kr 풀이 풀이에 필요한 변수 정의 및 초기화 탐색마다 갱신해야하는 최대 양의 수 해당 index의 자식 Node를 담고 있는 ArrayList배열 함수내에서 편하게 쓰기위한 입력값 info와 같은 값으로 전역변수 정의.. 2022. 1. 24.
[Kubernetes] Dynamic Provioning, RelcaimPoicy(Volume) PV 동적할당을 위한 Dynamic Provioning Volume은 데이터를 안정적으로 사용하기 위해 필요한 Object이므로 Kubernetes와 분리되어 관리 이러한 Volume을 사용하기 위해서는 내부/외부망에 존재하는 Volume을 사용하기 위해서는 관리자가 PV를 만들고 사용자가 원하는 용량과 AccessMode로 PVC를 만들면 쿠버네티스 측에서 적절한 PV와 연결 이러한 Volume 사용방법에는 필요할 때마다 PVC, PV를 만들어줘야함 -> 사용방법이 복잡 -> 동적 PV생성(Dynamic Provisioning)을 이용한 간단한 Volume 사용이 필요 Dynamic Provisioning 사용자가 PVC를 만들면 알아서 PV를 만들고 Volume과의 연결을 진행 모든 PV에는 상태가 .. 2022. 1. 22.
[Kubernetes] Headless, Endpoint, ExternalName(Service) * 사용자 관점에서 Pod/Service에 연결하는 방법 파드의 입장에서 연결 및 외부 서비스에 안정적인 연결방법 * 이러한 연결 방법에는 DNS Server를 기본적으로 이용하여 사용 DNS Server란 쿠버네티스 클러스터 안에 존재하는 서비스의 이름과 IP가 저장되어 있는 존재 Pod가 Service에 대한 도메인을 질의하면 해당 Service IP를 알려줌 Pod가 유저를 찾으려고 할 때, 쿠버네티스 내부 뿐만 아니라, 상위 DNS 인 내부망 DNS, 외부 네트워크 DNS까지 조회가능 * DNS Server는 FQDN(Fully Qualified Domain Name)으로 구성되어 있음 파드의 입장에서 외부 및 다른 서비스/Pod와 연결 가능한 방법 1. Headless Pod간의 연결을 위해 사.. 2022. 1. 22.
Programmers - k진수에서 소수 개수 구하기(Java) https://programmers.co.kr/learn/courses/30/lessons/92335 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 풀이 해당 문제를 풀기위해서는 아래의 3단계가 필요함 k진수 변환 0P0, P0, 0P, P의 수 찾기 -> 0을 기준으로 구분되는 수 소수인지 확인 k진수 변환 주어진 입력 값을 k 진수로 변환 입력 값을 0이 될때까지 k로 나눈뒤 나머지를 String에 삽입 모든 삽입이 끝나면, String을 반대로 뒤집으.. 2022. 1. 21.