[백준/Gold III] 웜홀 - 1865
·
코딩 테스트 정복기/백준
[Gold III] 웜홀 - 1865문제 링크분류벨만–포드, 그래프 이론, 최단 경로문제 설명때는 2020년, 백준이는 월드나라의 한 국민이다. 월드나라에는 N개의 지점이 있고 N개의 지점 사이에는 M개의 도로와 W개의 웜홀이 있다. (단 도로는 방향이 없으며 웜홀은 방향이 있다.) 웜홀은 시작 위치에서 도착 위치로 가는 하나의 경로인데, 특이하게도 도착을 하게 되면 시작을 하였을 때보다 시간이 뒤로 가게 된다. 웜홀 내에서는 시계가 거꾸로 간다고 생각하여도 좋다.시간 여행을 매우 좋아하는 백준이는 한 가지 궁금증에 빠졌다. 한 지점에서 출발을 하여서 시간여행을 하기 시작하여 다시 출발을 하였던 위치로 돌아왔을 때, 출발을 하였을 때보다 시간이 되돌아가 있는 경우가 있는지 없는지 궁금해졌다. 여러분은 백..
벨만-포드 알고리즘(Bellman-Ford Algorithm)
·
Computer Science/Algorithm
벨만-포드 알고리즘이란?벨만-포드 알고리즘(Bellman-Ford Algorithm)은 그래프에서 한 정점에서 다른 모든 정점까지의 최단 경로/최소 비용를 찾는 알고리즘이다.다익스트라 알고리즘과 차별되는 점은 음수 가중치를 처리할 수 있다는 점과 음수 사이클을 탐지할 수 있다는 점이다.때문에, 음수 가중치가 포함된 그래프에서 유용하게 사용된다. 동작 원리벨만-포드 알고리즘은 크게 세가지의 과정을 거친다.1. 초기화시작 정점에서 다른 모든 정점까지의 거리를 무한대로 설정한다.시작 정점의 거리를 0으로 설정한다. 2. 간선 반복모든 간선에 대해 그 간선을 따라 가는 거리가 기존에 기록된 거리보다 짧으면, 해당 거리를 업데이트 한다.이 과정을 그래프에 있는 `정점의 수 - 1`번 반복한다.왜냐하면, 최단 ..
다익스트라 알고리즘 (Dijkstra's Algorithm)
·
Computer Science/Algorithm
다익스트라 알고리즘이란?다익스트라 알고리즘(Dijkstra's Algorithm)은 네덜란드의 컴퓨터 과학자 에츠허르 다익스트라(Edsger Dijkstra)가 고안한 알고리즘으로, 그래프에서 한 노드(정점)에서 다른 모든 노드까지의 최단 경로를 찾는 알고리즘이다. 이 알고리즘은 가중치가 있는 그래프에서 사용되며, 특히 가중치가 음수가 아닌 경우에 유효하다.동작 원리1. 시작 노드 설정시작 노드를 설정하고, 시작 노드에서 다른 모든 노드로의 거리를 무한대로 설정한다. 시작 노드의 거리는 0으로 설정한다.2. 미방문 노드 집합 설정모든 노드를 미방문 노드 집합에 넣는다.3. 최단 거리 노드 선택처음에는 시작노드가 선택되고, 이후에는 미방문 노드 중에서 현재 가장 짧은 거리를 가진 노드를 선택한다.4. 거리..
[프로그래머스/level 2] 양궁대회 - 92342
·
코딩 테스트 정복기/프로그래머스
[level 2] 양궁대회 - 92342문제 링크성능 요약메모리: 78.3 MB, 시간: 0.29 ms구분코딩테스트 연습 > 2022 KAKAO BLIND RECRUITMENT채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 12월 04일 04:04:42문제 설명문제 설명카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원회는 한 선수의 연속 우승보다는 다양한 선수들이 양궁대회에서 우승하기를 원합니다. 따라서, 양궁대회 운영위원회는 결승전 규칙을 전 대회 우승자인 라이언에게 불리하게 다음과 같이 정했습니다.어피치가 화살 n발을 다 쏜 후에 라이언이 화살 n발을 쏩니..
Naver Cloud의 Kubernetes service(+Kubernetes의 기본 개념 )
·
Devops/Naver Cloud
모든 자료는 온라인으로 제공되는 Naver Cloud의 공인교육과정을 참고하였으며,Naver Cloud Professional 자격증을 준비하시는 분들께 조금이나마 도움이 될까하여 정리해두었던 내용을 공유합니다.2023년에 작성된 내용이며, VPC Platform 기반의 강의 내용을 정리한 것이니 참고 바랍니다.   쿠버네티스의 주요 기능Automatic BinpackingWorker node 의 가용성을 유지하면서 보유한 리소스를 충분히 활용할 수 있도록 스스로 스케줄링하며 컨테이너를 배치함Storage Orchestration로컬 저장소를 선택하거나 NFS, iSCSI 등과 같은 공유 네트워크 스토리지를 컨테이너에 할당/마운트 하여 사용 가능함Secret & Configuration Managemen..
오토박싱(Autoboxing)/언박싱(Unboxing)
·
Language/Java
Primitive Type과 Wrapper ClassPrimitive Type(기본 데이터 타입)Java에는 8개의 기본 데이터 타입이 있다.값 자체를 저장하며, 객체가 아닌 단순한 값을 가지기 때문에 메모리 사용과 성능 면에서 효율적이다. 크기값의 범위기본 값byte1byte (8bit)-128 ~ 1270short2byte (16bit)-32,768 ~ 32,7670int4byte (32bit)-2^31 ~ 2^31-10long8byte (64bit)-2^63 ~ 2^63-10Lfloat4byte (32bit)±3.40282347E+38F(6-7자리 유효숫자)0.0fdouble8byte (64bit)±1.79769313486231570E+308 (15자리 유효숫자)0.0dchar2byte (16bit..
[백준/Gold IV] N-Queen - 9663
·
코딩 테스트 정복기/백준
[Gold IV] N-Queen - 9663문제 링크성능 요약메모리: 14672 KB, 시간: 16596 ms분류백트래킹, 브루트포스 알고리즘제출 일자2024년 11월 28일 02:24:26문제 설명N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (1 ≤ N 출력첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다. 제출 코드백트래킹 조건:2. 같은 행에 퀸이 있을 때3. 대각선 방향에 퀸이 있을 때4. 퀸을 n개 이상 두었을 때 -> 이때는 결과에 1 더해준다.import java.io.*;public class Main { st..
[프로그래머스/level 2] N-Queen - 12952
·
코딩 테스트 정복기/프로그래머스
[level 2] N-Queen - 12952문제 링크성능 요약메모리: 76.9 MB, 시간: 470.74 ms구분코딩테스트 연습 > 연습문제채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 12월 02일 16:44:32문제 설명가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다.예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 서로를 한번에 공격 할 수 없습니다. 체스판의 가로 세로의 세로의 길이 n이 매개변수로 주어질 때, n개의 퀸이 조건에 만족 하도록 배치할 수 있는 방법의 수를 return하는 solution함수를 완성해주세요.제한사항퀸(Queen)은 가로, 세로, 대각선으로 이동..
Promotion(자동형변환)과 Casting(명시적형변환), Upcasting vs Downcasting
·
Language/Java
Promotionpromotion은 작은 크기의 자료형에서 큰 크기의 자료형으로 자동 변환되는 것을 의미한다.'암시적형변환', '자동형변환'이라고도 한다.int i = 100;long l = i; // int -> long으로 자동 변환float f = l; // long -> float으로 자동 변환  위의 코드에서 int 타입의 변수 i는 long 타입의 변수 l로,long 타입의 변수 l은 float타입의 변수 f로 자동 형변환 된다.더 큰 크기의 자료형으로 변환되어 데이터 손실이 발생하지 않기 때문에 자동 변환되어도 안전하다.참고로 + 연산자를 사용 시, 하나 이상의 피연산자가 String 타입이면, 다른 모든 피연산자도 String타입으로 promotion 된다. public class Stri..
Container - Docker개념과 관련 서비스
·
Devops/Naver Cloud
모든 자료는 온라인으로 제공되는 Naver Cloud의 공인교육과정을 참고하였으며,Naver Cloud Professional 자격증을 준비하시는 분들께 조금이나마 도움이 될까하여 정리해두었던 내용을 공유합니다.2023년에 작성된 내용이며, VPC Platform 기반의 강의 내용을 정리한 것이니 참고 바랍니다.   ☑️ 도커란?Container 기반 오픈소스 플랫폼2013년 3월 Python 컨퍼런스에서 Solomon Hykes가 “The Future of Linux Container”세션에서 처음 소개기존에 있던 다양한 resource isolation기술과 network, filesystem 기술들을 잘 조합하고 편의성을 올려 많은 개발자 / 엔지니어들에게 각광받기 시작  ☑️ Docker의 활용 ..