분류 전체보기 403

[프로그래머스/C++] 주식가격 (스택/큐 연습)

주식가격 문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 입출력 예 prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 입출력 예 설명 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다. 5초 시점..

[프로그래머스/C++] 섬 연결하기 (MST 알고리즘)

섬 연결하기 문제 설명 n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요. 다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과 C 섬은 서로 통행 가능합니다. 제한사항 섬의 개수 n은 1 이상 100 이하입니다. costs의 길이는 ((n-1) * n) / 2이하입니다. 임의의 i에 대해, costs[i][0] 와 costs[i] [1]에는 다리가 연결되는 두 섬의 번호가 들어있고, costs[i] [2]에는 이 두 섬을 연결하는 다리를 건설할 때 드..

[자료구조] 최소 신장 트리 - 크루스칼/프림 알고리즘

🎄신장 트리 (스패닝 트리) 최소 신장 트리에서 '신장 트리' 즉, 스패닝 트리는 노드 간의 경로가 오직 하나뿐인 트리를 말한다. 그래프 내의 모든 정점을 포함하며, 그래프의 최소 연결 부분 그래프라고 볼 수 있다. 최소 연결이란 간선의 수가 가장 적다는 뜻으로, n개의 정점을 가지는 그래프의 최소 간선 수는 (n-1)개이다. 따라서, (n-1)개의 간선으로 연결되어 있으면 필연적으로 트리 형태가 되며, 이것이 바로 스패닝 트리가 된다. 🎄최소 신장 트리 (MST, Minimum Spanning Tree) 하나의 그래프에는 많은 신장 트리가 존재할 수 있다. 최소 신장 트리는 이러한 신장 트리중에서 사용된 간선들의 가중치 합이 최소인 트리를 말한다. 즉, 가중치를 간선에 할당한 그래프에 있는 모든 정점들..

[프로그래머스/C++] 등굣길 (DP 문제 연습)

등굣길 문제 설명 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다. 가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타냅니다. 격자의 크기 m, n과 물이 잠긴 지역의 좌표를 담은 2차원 배열 puddles이 매개변수로 주어집니다. 오른쪽과 아래쪽으로만 움직여 집에서 학교까지 갈 수 있는 최단경로의 개수를 1,000,000,007로 나눈 나머지를 return 하도록 solution 함수를 작성해주세요. 제한사항 격자의 크기 m, n은 1 이상 ..

[네트워크] OSI 7 계층과 TCP/IP 4 계층, 계층 별 PDU

OSI 7 계층 OSI 7계층은 국제 표준화 기구(ISO)에서 표준화한 모델로, 네트워크 통신에서 생긴 여러 충돌 문제를 완화하기 위해 고준된 표준안입니다. 네트워크 통신이 일어나는 과정을 7단계로 나누어 각각 계층 별 통신 과정을 파악하고 흐름을 한눈에 알아보기 쉽게 합니다. 또한 7단계 중 특정한 곳에 문제가 생기면, 다른 단계의 장비나 소프트웨어를 건들이지 않고 문제가 생긴 단계만 고칠 수 있습니다. 1계층 - 물리 계층 물리 계층은 전기적, 기계적, 기능적인 특성을 이용하여 통신 케이블로 데이터를 전송하는 물리적인 장비들이 존재합니다. 물리 계층에서는 비트(Bit) 단위로 통신을 진행하며 데이터의 전기적인 신호(0, 1) 변환을 통해 데이터를 주고받는 기능만 수행합니다. 사용하는 장비는 통신 케이..

[OS] 메모리 단편화

메모리 단편화 메모리 단편화란 RAM에서 메모리의 공간이 작은 조각으로 나뉘어져 사용 가능한 메모리가 충분히 존재하지만, 할당(사용)이 불가능한 상태를 말합니다. 종류로는 내부 단편화와 외부 단편화가 있습니다. 메모리 단편화로 인해 일어나는 현상 메모리 단편화가 일어나면, 실제 사용 가능한 공간이 줄어들어 시스템의 성능 저하를 일으킬 수 있습니다. 성능 저하의 원인으로는 실제 사용할 수 있는 공간을 찾는 과정이 필요하고 잦은 페이지 교체나, swapping이 있을 수 있습니다. 내부 단편화 (Internal Fragmentation) 내부 단편화란, 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되어 메모리 공간이 낭비되는 상황을 말합니다. 예를 들어, 7kb를 사용하는 프로세스에게 1..

[DX] AABB, OBB 충돌

AABB (Axis-Aligned Bounding Box, 축 정렬 경계 상자) AABB 충돌은 객체를 좌표축에 평행하는 직육면체의 상자를 만들고, 이 상자들이 서로 겹치는지를 확인하여 객체 간에 충돌을 판단하는 방법입니다. 박스가 좌표 축에 정렬되어 있기 때문에, 박스를 이루는 면의 노말 벡터들이 곧 X, Y, Z 축과 일치하는 모양입니다. 따라서 객체의 x, y, z 좌표의 최솟점과 최댓점을 구하여 정의가 가능합니다. 더보기 최솟점과 최댓점의 차에 0.5를 곱해 AABB의 중점과 거리를 구할 수 있습니다. 중점 = 0.5 (Vmin - Vmax) 거리 = 0.5 (Vmax - Vmin) 이러한 방법으로, 회전함에 따라 객체의 크기도 계속 변하게 되고, 축에 일치된 모양이기 때문에 AABB끼리의 충돌 ..

[프로그래머스/C++] 단어 변환 (DFS 문제 연습)

단어 변환 문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변환할 수 있습니다. 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 ta..

[C++] LValue와 RValue, 얕은 복사와 깊은 복사

L-Value int a = 3; 에서 a에 해당하는 것처럼 참조(&) 연산자를 통해 주소값을 취할 수 있는 값을 LValue라고 합니다. LValue는 표현식의 왼쪽과 오른쪽 모두에 올 수 있습니다. R-Value int a = 3; 에서 3은 주소값을 취할 수 없습니다. 또한 표현식을 연산할 때 잠깐 존재하고, 연산 후에는 사라지는 값입니다. 즉, 이렇게 실체가 없어서 주소 값을 취할 수 없는 값을 RValue라고 합니다. RValue는 표현식의 오른쪽에만 올 수 있습니다. 얕은 복사 (Shallow Copy) 얕은 복사는 의존적인 복사로, 값을 복사하는 것이 아니라, 값을 기리키는 포인터를 복사하는 것입니다. 즉, 동적 할당 받은 변수의 주소값까지 공유합니다. 얕은 복사는 객체가 가진 멤버들의 값을..

[프로그래머스/C++] N으로 표현 (DP 문제 연습)

N으로 표현 문제 설명 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solution 함수를 작성하세요. 제한사항 N은 1 이상 9 이하입니다. number는 1 이상 32,000 이하입니다. 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에서 나머지는 무시합니다. 최솟값이 8보다 크면 -1을 return 합니다. 입출력 예 N number ret..

728x90