본문 바로가기

728x90

전체 글

[알고리즘] 프로그래머스 삼각 달팽이 https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr🔸 접근 방법2차원 배열을 만들어서 삼각형처럼 사용할 수 있도록 구성합니다. (전체 크기는 n x n)현재 위치를 나타내는 좌표 x, y를 두고, 방향에 따라 이동하며 값을 채웁니다.방향은 아래 → 오른쪽 → 왼쪽 위 대각선으로 반복됩니다.배열이 채워진 후에는, 삼각형 형태로 채운 값들을 1차원 배열로 추출해서 반환합니다.import java.util.*;class Solution { public int[] solution(int n) {.. 더보기
[Postgresql] 아키텍처 /* Postgresql 아키텍처 */PostgreSQL 서버는 크게 세 가지 종류의 프로세스로 구성됩니다: Postmaster, Backend, Background 프로세스입니다. Postmaster 프로세스인스턴스가 기동 될 때 가장 먼저 시작되며 여러 Background 프로세스와 Backend 프로세스를 생성한다. Postmaster 프로세스는 클라이언트가 접속을 시도하면 별도의 Backend 프로세스가 생성되고, 클라이언트 연결이 끊기거나 강제로 종료될 때까지 유지된다.Backend 프로세스Postmaster 프로세스에 의해 생성된 Backend 프로세스는 클라이언트와 1:1 관계를 유지하면서 클라이언트가 요청한 쿼리를 수행하고 결과를 전송한다. Backend 프로세스 개수는 기본값이 100이며.. 더보기
[스프링 시큐리티] 동작원리 /* 기본동작 */서버가 가동되면 Spring Security가 활성화되며, 초기 설정대로 웹 보안 기능이 작동합니다.기본적으로 모든 요청에 대해 인증 여부를 검증하며, 인증이 승인된 사용자만 자원에 접근할 수 있습니다.인증 방식으로 폼 로그인(Form Login) 및 HTTP Basic 인증 방식을 제공합니다.로그인 페이지가 자동으로 생성되어 렌더링됩니다.기본적으로 하나의 계정(아이디: user, 자동 생성된 패스워드)이 제공됩니다./* SecurityFilterChain의 역할 */Spring Security에서 핵심적인 역할을 하는 것이 SecurityFilterChain입니다. 이는 인증 및 인가(권한 부여) 처리를 담당하는 필터들의 체인으로 구성됩니다.만약 SecurityFilterChain 빈.. 더보기
[Redis] 레디스 /* Redis */Remote Dictionary Server  "원격(Remote)" → 네트워크를 통해 접근할 수 있음."딕셔너리(Dictionary)" → Key-Value 저장 방식 사용."서버(Server)" → 클라이언트 요청을 받아 데이터를 저장/제공하는 서버 역할./* 특징 */ In-Memory: 모든 데이터를 RAM에 저장 (백업 / 스냅샷 제외)Single Threaded: 단일 Thread에서 모든 task 처리Cluster Mode: 다중 노드에 데이터를 분산 저장하여 안정성 & 고가용성 제공클러스터 모드에서 데이터는 샤딩을 통해 특정 노드에 저장되고, 그 노드의 위치는 해싱(Hashing)을 통해 결정조회할 때도 해싱을 통해 해당 데이터가 저장된 노드를 찾아서 요청을 보낸 후 .. 더보기
[알고리즘] MST 최소 신장 (스패닝) 트리 /* 최소 신장 트리(MST) */최소 신장 트리(Minimum Spanning Tree, MST)는 가중치 그래프에서 모든 정점을 연결하는 최소 비용의 부분 그래프입니다. MST는 사이클이 없고, (V - 1)개의 간선을 가지며, 그래프의 최소 연결 비용을 찾는 데 사용됩니다.MST의 특징연결 그래프: 모든 정점이 연결되어 있어야 합니다.최소 비용: 간선의 가중치 합이 최소가 되어야 합니다.사이클이 없어야 함: 트리의 성질을 만족해야 합니다.(V - 1)개의 간선: 정점이 V개라면, MST의 간선 수는 항상 (V - 1)개입니다./* 첫 번째 알고리즘, 크루스칼 알고리즘*/크루스칼 알고리즘은 간선을 가중치 기준으로 정렬한 후, 최소 비용의 간선을 하나씩 선택하여 MST를 구성하는 방식입니다.시간 복잡도.. 더보기
[프로그래머스] LIS /* LIS 최장 증가 부분 수열 */LIS란? 최장 증가 부분 수열(Longest Increasing Subsequence, LIS)은 주어진 수열에서 순서를 유지하면서 가장 긴 증가하는 부분 수열을 찾는 문제입니다. /* 1. DP 방식 O(N^2)*/import java.util.*;public class LIS_DP { public static int lis(int[] arr) { int n = arr.length; int[] dp = new int[n]; Arrays.fill(dp, 1); for (int i = 1; i  /* 2. DP  + 이분탐색 O(N Log N)*/import java.util.*;public class LIS_B.. 더보기
[네트워크] TCP/IP, HTTP 커넥션 /* TCP 커넥션부터 HTTP 요청/응답 */ /* TCP */TCP는 IP 패킷이라고 불리는 작은 조각을 통해 데이터를 전송한다. HTTP 는 애플리케이션 계층으로 최상위 계층이다. TCP는 전송계층이다. HTTP는 애플리케이션 계층 바로 아래, TCP가 속한 전송계층이 있지만. HTTPS 애플리케이션 계층 바로 아래에는 SSL이 속한 보안 계층이 있고 그 밑에 전송 계층이 존재한다.  각 TCP 세그먼트는 하나의 IP에서 다른 IP로 IP패킷에 담겨 전달된다. 전달하기 위해서는 TCP 커넥션이 필요한데, 이는 네 가지 값으로 식별한다. /* TCP 커넥션 설정 과정 -  3 Way Handshake*/ SYN 패킷 전송: 클라이언트가 서버에 커넥션 연결 요청을 보낸다.SYN-ACK 패킷 수신: 커.. 더보기
[알고리즘] 프로그래머스 '의상' 프로그래머스 의상 문제는 조합론과 곱의 법칙을 활용해 효율적으로 해결할 수 있는 알고리즘 문제입니다. 이 포스트에서는 문제를 간단히 소개하고, 곱의 법칙과 조합론을 활용해 문제를 어떻게 접근할 수 있는지 살펴보겠습니다. 문제 소개문제 설명각 의상에는 이름과 종류가 있습니다.서로 다른 의상을 조합해 입을 수 있는 모든 경우의 수를 계산합니다.단, 하루에 최소 하나의 의상은 입어야 합니다.입력 예시String[][] clothes = {// { value , 타입 } {"yellow_hat", "headgear"}, {"blue_sunglasses", "eyewear"}, {"green_turban", "headgear"}};출력위 입력에서는 총 5가지의 조합이 가능합니다:yellow_hat.. 더보기

728x90