[백준/Gold V] LCS - 9251
·
코딩 테스트 정복기/백준
[Gold V] LCS - 9251문제 링크분류다이나믹 프로그래밍, 문자열문제 설명LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.입력첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다.출력첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다. 풀이 및 코드풀이는 아래에 LCS 알고리즘과 함께 정리해두었습니다.[Computer Science/Algorithm] - 최장 공통 부분 수열 (LCS; Longest common subsequ..
최장 공통 부분 수열 (LCS; Longest common subsequence problem) - DP 해결법
·
Computer Science/Algorithm
최장 공통 부분 수열 (LCS; Longest common subsequence problem)부분 수열(subsequence)은 시퀀스의 원소를 순서를 유지한 채 몇 개를 골라낸 것을 말한다.최장 공통 부분 수열은 두 시퀀스(문자열 또는 배열)간 공통된 부분 수열 중 가장 긴 것을 찾아내는 문제이다. 예시) 문자열 `ABCBDAB`와 `BDCABA`의 LCS는 `BCBA`이다. 보통 LCS 문제를 해결하기 위해 주로 동적 계획법(DP;Dynamic Programming)을 사용한다.이 글에서도 DP를 이용한 LCS 알고리즘을 설명하고자 한다.  LCS 길이 구하기동작 원리동적 계획법은 문제를 작은 부분 문제로 나누고 그 해를 이용해서 전체 문제를 해결하는 방식이다.때문에 문제 정의와 점화식, 초기 조건..
Inheritance와 Composition (클래스 간의 관계)
·
Language/Java
Inheritance정의Inheritance(상속)은 객체지향 프로그래밍에서 상위 클래스(부모)의 속성과 메서드를 하위 클래스(자식)가 물려받는 개념이다.`is-a`관계를 나타낸다.  장단점장점재사용성부모 클래스의 기능을 자식 클래스에서 재사용 할 수 있다.계층구조클래스 간 상속관계를 통해 계층 구조를형성할 수 있다.다형성(오버라이딩)자식 클래스에서 부모 클래스의 메서드를 오버라이딩(재정의)하여 다형성을 구현할 수 있다.유지보수 용이공통 기능을 상위 클래스에 두고 관리할 수 있어 유지보수가 쉬워진다. 단점 결합도 증가부모 클래스의 기능을 자식 클래스에서 재사용 할 수 있다.유연성 부족자식 클래스는 부모 클래스에 강하게 의존하게 되어 유연성이 떨어진다.다중 상속 불가Java는 다중 상속을 지원하지 않는다...
[백준/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..