CS
gRPC๋?google์์ ๊ฐ๋ฐํ RPC(Remote Procedure Call)๋ก ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ํต์ ์ ๊ฐํธํ๊ณ ํจ์จ์ ์ผ๋ก ํ ์ ์๋๋ก ์ค๊ณ๋ ํ๋กํ ์ฝ์ด๋ค.์ฆ, ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ๋ฉ์์ง๋ฅผ ๋น ๋ฅด๊ณ ์ ๋ขฐ์ฑ ์๊ฒ ๊ตํํ ์ ์๋๋ก ๋์์ค๋ค.ํ๋กํ ์ฝ ๋ฒํผ (Protocol Buffers, Protobuf)gRPC๋ Protobuf๋ผ๋ ์ง๋ ฌํ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.Protobuf๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ง ํ์์ผ๋ก ์ง๋ ฌํํ๊ณ ์ญ์ง๋ ฌํํ๋ ๋ฐฉ์์ผ๋ก, JSON์ด๋ XML๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๊ณ ํจ์จ์ ์ด๋ค.ํนํ ์์ ๋ฉ์์ง ํฌ๊ธฐ์ ๊ฒฝ์ฐ, ์ง๋ ฌํ/์ญ์ง๋ ฌํ ๊ณผ์ ์์ ๋งค์ฐ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ์ ์ก์ ์ ๊ณต์ด ๊ฐ๋ฅํ๋ค. ์ด ๋ฐฉ์์ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ์ต์ํํ๊ณ , ์ง๋ ฌํ ๋ฐ ์ญ์ง๋ ฌํ ์๊ฐ์ ํฌ๊ฒ ์ค์ฌ ๋คํธ์ํฌ ๋์ญํญ์ ์ ์ฝํ๊ณ ์ฑ..
CS
๋๊ธฐ์ ๋น๋๊ธฐ๋๊ธฐ์์
์ ์์ฐจ์ ์ผ๋ก ์งํํ๋ ๋ฐฉ์ํ๋์ ์์
์ด ๋๋ ๋๊น์ง ๋ค์ ์์
์ ์คํ๋์ง ์๊ณ ๊ธฐ๋ค๋ฆฐ๋ค. ์์ : ์์
A -> ์์
B -> ์์
C (A๊ฐ ๋๋ ๋๊น์ง B, C๋ ์คํ๋์ง ์์)๋น๋๊ธฐ์์
์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋์์ ์งํ์์
์ ์์ฒญํ๋ฉด ๊ทธ ์์
์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ , ๋ค๋ฅธ ์์
์ ๊ณ์ ์งํ ์์ : ์์
A -> ์์
B -> ์์
C (A๊ฐ ์งํ๋๋ ๋์ B์ C๋ ๋์์ ์คํ๋ ์ ์์)๋ธ๋กํน๊ณผ ๋
ผ๋ธ๋กํน๋ธ๋กํน์์
์ด ์๋ฃ๋ ๋๊น์ง ์ ์ด๊ถ์ ๋ฐํํ์ง ์๋ ๋ฐฉ์์ด๋ ํ ์์
์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ์์
์ ์ํํ๋ ๊ฒฝ์ฐ ์์ : ์์
A -> ๋๊ธฐ -> ์์
B -> ๋๊ธฐ -> ์์
C (๊ฐ ์์
์ด ๋๋ ๋๊น์ง ๋๊ธฐ)๋
ผ๋ธ๋กํน์์
์ด ์งํ๋๋ ๋์์๋ ์ ์ด๊ถ์ ๋ฐํํ๊ณ ๋ค๋ฅธ ์์
์ ๊ณ..
CS
processํ๋ก์ธ์ค๋ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ๋
๋ฆฝ์ ์ธ ๋จ์์ด์์ฒด์ ๋ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ๋ฉฐ, ํ๋ก์ธ์ค ๊ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๊ณต์ ๋์ง ์๋๋ค.thread์ค๋ ๋๋ ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ์์
์ ๋จ์ํ ํ๋ก์ธ์ค ๋ด์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ์กด์ฌํ ์ ์์ผ๋ฉฐ, ํ๋ก์ธ์ค์ ์์์ ๊ณต์ ๊ตฌ๋ถ ProcessThread๊ธฐ๋ณธ ๋จ์์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ๋
๋ฆฝ์ ์ธ ๋จ์ํ๋ก์ธ์ค ๋ด ์์
์ ์คํ ๋จ์๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๊ณ ์ ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ(Code, Data, Heap, Stack)Code, Data, Heap ๊ณต์ , Stack์ ๋
๋ฆฝ์ ๋
๋ฆฝ์ฑํ๋ก์ธ์ค ๊ฐ ๋
๋ฆฝ์ , ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ณต์ ๋ถ๊ฐ๊ฐ์ ํ๋ก์ธ์ค ๋ด์์ ๋ค๋ฅธ ์ค๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต์ ์์ฑ ์๋ํ๋ก์ธ์ค ์์ฑ ์๋๊ฐ ๋๋ฆฌ๊ณ ์ค๋ฒํค๋๊ฐ ํผ์ค๋ ๋ ์์ฑ ์๋๊ฐ ๋น ๋ฅด๊ณ ๊ฐ๋ฒผ์๋ฌธ..
CS
oop๋ฅผ ์ ๋ฆฌํ๊ธฐ์ ์์ ์ฉ์ด๋ค์ ์ ๋ฆฌ๊ฐ ํ์คํ๊ฒ ์ด๋ฃจ์ด์ง์ง์๋๊ฑฐ๊ฐ์ class, instance, object๋ค์ ๋ํ ๊ฐ๋
์ ๋ฆฌ๋ฅผ ์งํํ์๋ค.ํด๋์ค (class)๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ
ํ๋ฆฟ ๋๋ ์ฒญ์ฌ์ง๋ฌด์์ธ๊ฐ์ ๋ชจ์, ์งํฉ์ฒด๊ฐ์ฒด๋ฅผ ์์ ํ๋ ๋ฌธ๋ฒ// cppclass Color { ...}// ์์ ์ฝ๋์ ๊ฐ์ด object or instance๋ฅผ ์์ฑํ๊ธฐ์ํ ํ์ ๊ฐ๋
์ class๋ผ๊ณ ์ด์ผ๊ธฐํ๋ค. ์ธ์คํด์ค (instance)ํด๋์ค๋ก ๋ถํฐ ์์ฑ๋ ๊ตฌ์ฒด์ ์ธ ๊ฐ์ฒดclass Color { ...}Color Blue; Color Grean; // ์ฆ Blue, Grean ๊ฐ์ ๊ฒ๋ค์ ๊ฐ์ฒด(object)๋ผ๊ณ ์ด์ผ๊ธฐํ๋ค.๊ฐ์ฒด (object)ํฌ๊ด์ ์ธ ์ผ๋ฐ ๋ช
์ฌ๊ตฌ์ฒด์ ์ธ ์ฌ๋ฌผ์ด๋ ์ถ์์ ์ธ ๊ฐ๋
๋
๋ฆฝ์ , ์์์ ์ผ๋ก ์กด์ฌํ๋ ๋ฌด..
CS
Socket์์ผ์ ๋คํธ์ํฌ ํต์ ์ ์ํ ์ํํธ์จ์ด ์ธํฐํ์ด์ค๋ก, ๋คํธ์ํฌ ํต์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ๋ ํต๋ก ์ญํ ์ ํ๋ค.์์ผ์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ก ๊ตฌ์ฑ๋์ด, ์ด๋ค์ ํตํด ๋คํธ์ํฌ์์ ๋ค๋ฅธ ์ฅ์น์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.๋๋ถ๋ถ์ ๋คํธ์ํฌ ํต์ ์ ์์ผ์ ์ฌ์ฉํด ์ด๋ฃจ์ด์ง๋ค. ์๋ฅผ ๋ค์ด, TCP์ UDP ํต์ ์ ๋ชจ๋ ์์ผ์ ํตํด ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋ค.Stream์คํธ๋ฆผ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์์ ์ผ๋ก ์ ๋ฌํ๋ ๋ฐฉ์TCP์์๋ ๋ฐ์ดํฐ๋ฅผ packet ๋จ์๋ก ๋๋์ด ๋ณด๋ด์ง๋ง, ์ฐ์์ ์ธ ๋ฐ์ดํฐ ํ๋ฆ(stream) ํํ๋ก ์ฒ๋ฆฌ๋๋ค. ์ฆ, ์ฌ๋ฌ ํจํท์ด ์์ฐจ์ ์ผ๋ก ์ ๋ฌ๋๋ฉด์, ์์ ์ธก์์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ํ๋์ ์ฐ์์ ์ธ ํ๋ฆ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ค.์คํธ๋ฆผ์ TCP์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ฌ์ฉ๋๋ฉฐ, ์ฐ์์ ์ด๊ณ ์์ ์ ์ธ ๋ฐ์ด..
Algorithm
https://www.acmicpc.net/problem/18111 ํ์ด๊ณผ์ ํด๋น ๋ฌธ์ ์์ ์ ๊ฒฝ์จ์ผํ๋ ๋ถ๋ถ์ ์ด์ ๊ฐ๋ค.1. ‘๋
๊ณ ๋ฅด๊ธฐ’ ์์
์ ๊ฑธ๋ฆฌ๋ ์ต์ ์๊ฐ๊ณผ ๊ทธ ๊ฒฝ์ฐ ๋
์ ๋์ด๋ฅผ ์ถ๋ ฅํ์์ค.2. ๋
์ ๋์ด๋ 256๋ธ๋ก์ ์ด๊ณผํ ์ ์์ผ๋ฉฐ, ์์๊ฐ ๋ ์ ์๋ค.3. ๋ต์ด ์ฌ๋ฌ ๊ฐ ์๋ค๋ฉด ๊ทธ์ค์์ ๋
์ ๋์ด๊ฐ ๊ฐ์ฅ ๋์ ๊ฒ์ ์ถ๋ ฅํ์์ค. ๋ฌธ์ ์์๋ ๋
๊ณ ๋ฅด๊ธฐ๋ฅผ ํ๋ฉด์ ๊ฑธ๋ฆฌ๋ ์ต์์๊ฐ๊ณผ ๊ทธ ๋
์ ๋์ด๋ฅผ ๊ตฌํด์ผํ๋ค๊ณ ํ๋ค.๋
์ ๋์ด์ ๋ฒ์๊ฐ 0 ~ 256 ๊น์ง๋ก ์ ์ ๋ฒ์ ๋ด์ ์ ํ์ด ๋์ด์์ผ๋ ๋ชจ๋ ๋
๋์ด๋ฅผ ๋ฐ๋ณต๋ฌธ์ ๋๋ฉฐ, targetHeight๋ฅผ ๊ธฐ์ค์ ๋์ด๋ก ๋ชจ๋ ๋
์ ๋ง๋ค์ด๋ณด๊ณ ๋ธ๋ญ๊ฐ์๋ด์ ๊ฐ๋ฅํ์ง, ์๊ฐ์ด ๊ฐ์ฅ ์ ์์ง๋ฅผ ํ์ธํ๋ฉฐ ๊ฒฐ๊ณผ๊ฐ์ ๊ตฌํ์๋ค. code#include #include #i..
programming language/C++
๋ชฉํ๋ด๊ฐ ์์ฑํ๋ ํ๋ก์ ํธ ๋ด๋ถ์์ opencv๋ฅผ ์ค์นํ๊ณ cmake๋ฅผ ํตํด ๋ด๊ฐ ์ง์ ์์ฑํ main.cpp ๋ด๋ถ์์ opencv๋ฅผ ์ฌ์ฉํ๋๊ฒ์ด ๋ชฉํ์ด๋ค.project - opencv - build - src - main.cpp - main.hpp - CMakeLists.txt opencv clone ์งํgit clone https://github.com/opencv/opencv.git opencv ๋ด๋ถ์์ cmake ๋ฐ make ์งํcd opencvmkdir buildcd buildcmake ..make -j4make -j4 : ๋ฅผ ์ฌ์ฉํ๋ฉด 4๊ฐ๋ก ๋ณ๋ ฌ ๋น๋๊ฐ ๊ฐ๋ฅํ์ง๋ง ํ์์ ์์
ํ๊ฒฝ์์๋ ์ฌ์์ด ๋ถ์กฑํ์ฌ -j2 ํน์ ๊ทธ๋ฅ make๋ก ์งํํ์๋ค. p..
Algorithm
https://www.acmicpc.net/problem/15829 ๋ฌธ์ APC์ ์จ ๊ฒ์ ํ์ํ๋ค. ๋ง์ฝ ์ฌ๋ฌ๋ถ์ด ํ๊ต์์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์๊ฐํ๋ค๋ฉด ํด์ ํจ์์ ๋ํด ๋ฐฐ์ ์ ๊ฒ์ด๋ค. ํด์ ํจ์๋ ์์์ ๊ธธ์ด์ ์
๋ ฅ์ ๋ฐ์์ ๊ณ ์ ๋ ๊ธธ์ด์ ์ถ๋ ฅ์ ๋ด๋ณด๋ด๋ ํจ์๋ก ์ ์ํ๋ค. ํด์ ํจ์๋ ๋ฌด๊ถ๋ฌด์งํ ์์ฉ ๋ถ์ผ๋ฅผ ๊ฐ๋๋ฐ, ๋ํ์ ์ผ๋ก ์๋ฃ์ ์ ์ฅ๊ณผ ํ์์ ์ฐ์ธ๋ค.์ด ๋ฌธ์ ์์๋ ์ฌ๋ฌ๋ถ์ด ์์ผ๋ก ์ ์ฉํ๊ฒ ์ธ ์ ์๋ ํด์ ํจ์๋ฅผ ํ๋ ๊ฐ๋ฅด์ณ์ฃผ๊ณ ์ ํ๋ค. ๋จผ์ , ํธ์์ ์
๋ ฅ์ผ๋ก ๋ค์ด์ค๋ ๋ฌธ์์ด์๋ ์๋ฌธ ์๋ฌธ์(a, b, ..., z)๋ก๋ง ๊ตฌ์ฑ๋์ด์๋ค๊ณ ๊ฐ์ ํ์. ์์ด์๋ ์ด 26๊ฐ์ ์ํ๋ฒณ์ด ์กด์ฌํ๋ฏ๋ก a์๋ 1, b์๋ 2, c์๋ 3, ..., z์๋ 26์ผ๋ก ๊ณ ์ ํ ๋ฒํธ๋ฅผ ๋ถ์ฌํ ์ ์๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ํ๋..
Algorithm
https://www.acmicpc.net/problem/2108 ๋ฌธ์ ์๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ ํต๊ณํ์์ ์๋นํ ์ค์ํ ์ผ์ด๋ค. ํต๊ณํ์์ N๊ฐ์ ์๋ฅผ ๋ํํ๋ ๊ธฐ๋ณธ ํต๊ณ๊ฐ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์๋ค. ๋จ, N์ ํ์๋ผ๊ณ ๊ฐ์ ํ์.์ฐ์ ํ๊ท : N๊ฐ์ ์๋ค์ ํฉ์ N์ผ๋ก ๋๋ ๊ฐ์ค์๊ฐ : N๊ฐ์ ์๋ค์ ์ฆ๊ฐํ๋ ์์๋ก ๋์ดํ์ ๊ฒฝ์ฐ ๊ทธ ์ค์์ ์์นํ๋ ๊ฐ์ต๋น๊ฐ : N๊ฐ์ ์๋ค ์ค ๊ฐ์ฅ ๋ง์ด ๋ํ๋๋ ๊ฐ๋ฒ์ : N๊ฐ์ ์๋ค ์ค ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ์ฐจ์ดN๊ฐ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ๋ค ๊ฐ์ง ๊ธฐ๋ณธ ํต๊ณ๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์
๋ ฅ์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์ด์ง๋ค. ๋จ, N์ ํ์์ด๋ค. ๊ทธ ๋ค์ N๊ฐ์ ์ค์๋ ์ ์๋ค์ด ์ฃผ์ด์ง๋ค. ์
๋ ฅ๋๋ ์ ์์ ์ ๋๊ฐ์ 4,000์ ๋์ง ์๋..