[백준][누적합-1] 2015번 수들의 합 4 자바 풀이
·
알고리즘
코테에서 틀린 문제만 팬다누적합트리조합문제A[1], A[2], ..., A[N]의 N개의 정수가 저장되어 있는 배열이 있다. 이 배열 A의 부분합이란 1 ≤ i ≤ j ≤ N인 정수 i와 j에 대해 A[i]부터 A[j]까지의 합을 말한다.N과 A[1], A[2], ..., A[N]이 주어졌을 때, 이러한 N×(N+1)/2개의 부분합 중 합이 K인 것이 몇 개나 있는지를 구하는 프로그램을 작성하시오.입력첫째 줄에 정수 N과 K가 주어진다. (1 ≤ N ≤ 200,000, |K| ≤ 2,000,000,000) N과 K 사이에는 빈칸이 하나 있다. 둘째 줄에는 배열 A를 이루는 N개의 정수가 빈 칸을 사이에 두고 A[1], A[2], ..., A[N]의 순서로 주어진다. 주어지는 정수의 절댓값은 10,000을..
[프로그래머스] 지게차와 크레인 자바 풀이
·
알고리즘
문제 설명A 회사의 물류창고에는 알파벳 대문자로 종류를 구분하는 컨테이너가 세로로 n 줄, 가로로 m줄 총 n x m개 놓여 있습니다. 특정 종류 컨테이너의 출고 요청이 들어올 때마다 지게차로 창고에서 접근이 가능한 해당 종류의 컨테이너를 모두 꺼냅니다. 접근이 가능한 컨테이너란 4면 중 적어도 1면이 창고 외부와 연결된 컨테이너를 말합니다.최근 이 물류 창고에서 창고 외부와 연결되지 않은 컨테이너도 꺼낼 수 있도록 크레인을 도입했습니다. 크레인을 사용하면 요청된 종류의 모든 컨테이너를 꺼냅니다.위 그림처럼 세로로 4줄, 가로로 5줄이 놓인 창고를 예로 들어보겠습니다. 이때 "A", "BB", "A" 순서대로 해당 종류의 컨테이너 출고 요청이 들어왔다고 가정하겠습니다. “A”처럼 알파벳 하나로만 출고 요..
[프로그래머스] 리코쳇 로봇 자바 풀이
·
알고리즘
문제 설명리코쳇 로봇이라는 보드게임이 있습니다.이 보드게임은 격자모양 게임판 위에서 말을 움직이는 게임으로, 시작 위치에서 출발한 뒤 목표 위치에 정확하게 멈추기 위해 최소 몇 번의 이동이 필요한지 말하는 게임입니다.이 게임에서 말의 이동은 현재 위치에서 상, 하, 좌, 우 중 한 방향으로 게임판 위의 장애물이나 게임판 가장자리까지 부딪힐 때까지 미끄러져 움직이는 것을 한 번의 이동으로 정의합니다.다음은 보드게임판을 나타낸 예시입니다. ("."은 빈 공간을, "R"은 로봇의 처음 위치를, "D"는 장애물의 위치를, "G"는 목표지점을 나타냅니다.)...D..R .D.G... ....D.D D....D. ..D....이때 최소 움직임은 7번이며 "R" 위치에서 아래, 왼쪽, 위, 왼쪽, 아래, 오른쪽, 위..
[프로그래머스] 광물 캐기 자바 풀이
·
알고리즘
문제 설명마인은 곡괭이로 광산에서 광석을 캐려고 합니다. 마인은 다이아몬드 곡괭이, 철 곡괭이, 돌 곡괭이를 각각 0개에서 5개까지 가지고 있으며, 곡괭이로 광물을 캘 때는 피로도가 소모됩니다. 각 곡괭이로 광물을 캘 때의 피로도는 아래 표와 같습니다.예를 들어, 철 곡괭이는 다이아몬드를 캘 때 피로도 5가 소모되며, 철과 돌을 캘때는 피로도가 1씩 소모됩니다. 각 곡괭이는 종류에 상관없이 광물 5개를 캔 후에는 더 이상 사용할 수 없습니다.마인은 다음과 같은 규칙을 지키면서 최소한의 피로도로 광물을 캐려고 합니다.사용할 수 있는 곡괭이중 아무거나 하나를 선택해 광물을 캡니다.한 번 사용하기 시작한 곡괭이는 사용할 수 없을 때까지 사용합니다.광물은 주어진 순서대로만 캘 수 있습니다.광산에 있는 모든 광물..
[프로그래머스] 과제 진행하기 자바 풀이
·
알고리즘
문제 설명과제를 받은 루는 다음과 같은 순서대로 과제를 하려고 계획을 세웠습니다.과제는 시작하기로 한 시각이 되면 시작합니다.새로운 과제를 시작할 시각이 되었을 때, 기존에 진행 중이던 과제가 있다면 진행 중이던 과제를 멈추고 새로운 과제를 시작합니다.진행중이던 과제를 끝냈을 때, 잠시 멈춘 과제가 있다면, 멈춰둔 과제를 이어서 진행합니다.만약, 과제를 끝낸 시각에 새로 시작해야 되는 과제와 잠시 멈춰둔 과제가 모두 있다면, 새로 시작해야 하는 과제부터 진행합니다.멈춰둔 과제가 여러 개일 경우, 가장 최근에 멈춘 과제부터 시작합니다.과제 계획을 담은 이차원 문자열 배열 plans가 매개변수로 주어질 때, 과제를 끝낸 순서대로 이름을 배열에 담아 return 하는 solution 함수를 완성해주세요. 제한..
프록시 VS 라우팅 (부제 : SI 개발자인 내가 고객과 소통 하는 법)
·
TIL
보호되어 있는 글입니다.
[AWS] 퍼블릭 액세스 가능한 RDS를 VPC에 생성하기
·
Infra
AWS에서 RDS를 생성하고 로컬 개발환경에서 외부(DBeaver 등)에서 연결하려고 할 때,퍼블릭 액세스가 안 돼서 타임아웃 나는 경우, 대부분은 VPC 및 서브넷 설정이 잘못되어 있기 때문입니다.이번 포스트에서는 퍼블릭 액세스 가능한 RDS 인스턴스를 직접 생성하면서 겪은 문제와 해결 방법을 정리합니다.현재 구성은 AWS 실습 및 테스트를 위한 구성 설정이므로, 운영 환경에서 아래처럼 구성하는 것은 추천드리지 않습니다. 저는 테스트를 위한 용도로 구성했으니 참고해주세요!✅ 목표VPC 내에 퍼블릭 / 프라이빗 서브넷 구분퍼블릭 서브넷에 RDS 인스턴스를 배치외부 툴 (ex. DBeaver)에서 접속 가능하도록 설정 RDS 연결 안 될 때 점검 순서RDS → Publicly Accessible = ✅ Y..
클라우드 인프라에서 HA(High Availability)를 보장하는 방법 고민
·
Infra
🔥 클라우드 인프라에서 HA(High Availability)를 보장하는 진짜 방법Active-Active, DR, AZ, Docker, 그리고 진짜 고가용성의 본질까지 한방에 정리📌 목차Active-Active, DR, AZ, Cloud란?Standby 전략: Hot / Warm / Cold애플리케이션 장애에서의 HA 보장 방법Docker만으로는 HA가 안 되는 이유왜 인스턴스를 2개 이상 둬야 하는가?마무리: 진짜 HA 구성은 이렇게 한다1. ✅ Active-Active, DR, AZ, Cloud의 관계🔹 Active-Active두 시스템이 동시에 서비스 처리 (부하 분산 + 장애 허용)성능과 가용성을 동시에 잡는 구조단, 데이터 동기화/복잡도 ↑🔹 DR (Disaster Recovery)장애..
로그를 작성하는 기준이 있나요? "인포는 인포용, 디버그는 디버그용이요.."
·
Infra
로그, 제대로 써보고 있나요?시니어 개발자 선배님과의 커피챗에서 느낀 부끄러움얼마 전, 시니어 개발자 선배님과 커피를 마시며 이런 질문을 받았습니다.“로그를 어떤 기준으로 작성하세요?”당황한 저는 이렇게 대답했습니다.“음… 인포는 인포용, 디버그는 디버그용이요...”그 순간, 제 안에 울려 퍼진 한 마디."이게 뭐 하는 소리야, 나 지금까지 그냥 감으로 로그 쓴 거였잖아?"로그는 선택이 아니라 생존이다로그는 단순히 콘솔에 뿌려지는 문자열이 아닙니다. 로그는 문제 해결의 첫 번째 열쇠이자, 운영의 나침반, 배포 후 유일한 증거물입니다.시스템에서 장애가 났다?→ 로그가 없으면 디버깅은 하늘에 별 따기.유저가 데이터가 사라졌다고 한다?→ 로그 없으면 "죄송합니다..." 말밖에 못 한다.로그 작성 기준이 없다면..
WSL2에서 Cockpit 환경 실습하기: systemd 설정부터 접속까지
·
Infra
이번 글에서는 WSL2 환경에서 Cockpit을 설치하고 사용하는 방법을 정리했습니다.Cockpit은 웹 기반 리눅스 서버 관리 도구로, 시스템 자원 모니터링, 서비스 관리, 계정 설정 등 다양한 기능을 GUI로 제공해줍니다.특히 systemd 기반으로 동작하기 때문에, WSL 기본 환경에서는 별도 설정이 필요합니다.그럼 바로 시작해보겠습니다. 😎🔍 Cockpit이란?Cockpit은 Red Hat에서 만든 웹 기반 리눅스 서버 관리 도구입니다.터미널 없이도 브라우저를 통해 리눅스 시스템을 쉽게 관리할 수 있어, 초보자부터 전문가까지 모두에게 유용합니다.특히 SSH 포트(22번)가 차단된 환경에서도 Cockpit 포트(기본 9090)만 열려 있다면, Cockpit의 웹 터미널(Shell) 기능을 통해 ..