๐ Computer Science
![[C++] ํฌ ํฌ์ธํฐ(Two Pointer)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzb2OX%2FbtrkHnJuMUV%2FV2GecY6KdxMJKrTWQum5Ck%2Fimg.png)
[C++] ํฌ ํฌ์ธํฐ(Two Pointer)
ํฌ ํฌ์ธํฐ(Two Pointer) 1์ฐจ์ ๋ฐฐ์ด์์ ๊ฐ์ ๋ค๋ฅธ ์์๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋ 2๊ฐ์ ํฌ์ธํฐ๋ฅผ ์กฐ์ํ์ฌ ์ํ๋ ๊ฐ์ ์ป๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/2003 2003๋ฒ: ์๋ค์ ํฉ 2 ์ฒซ์งธ ์ค์ N(1≤N≤10,000), M(1≤M≤300,000,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ A[1], A[2], …, A[N]์ด ๊ณต๋ฐฑ์ผ๋ก ๋ถ๋ฆฌ๋์ด ์ฃผ์ด์ง๋ค. ๊ฐ๊ฐ์ A[x]๋ 30,000์ ๋์ง ์๋ ์์ฐ์์ด๋ค. www.acmicpc.net #include using namespace std; int arr[10000]; int main() { int N, M; cin >> N >> M; for (int i = 0; i > arr[i]; ..
[C++] next_permutation, prev_permutation
next_permutation, prev_permutation ํจ์์ ๋ฒกํฐ์ iterator๋ ๋ฐฐ์ด์ ์ฃผ์๋ฅผ ๋ฃ์ผ๋ฉด ๋ค์ ์์ด(next_permutation) ๋๋ ์ด์ ์์ด(prev_permutation)์ ๊ฒฐ๊ณผ๊ฐ ๋ฒกํฐ๋ ๋ฐฐ์ด์ ์ ์ฉ๋๋ค. ๋ง์ฝ ๋ค์ ๋๋ ์ด์ ์์ด์ด ์๋ค๋ฉด False๋ฅผ return ํ๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/10972 10972๋ฒ: ๋ค์ ์์ด ์ฒซ์งธ ์ค์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์์ด์ ๋ค์์ ์ค๋ ์์ด์ ์ถ๋ ฅํ๋ค. ๋ง์ฝ, ์ฌ์ ์์ผ๋ก ๋ง์ง๋ง์ ์ค๋ ์์ด์ธ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค. www.acmicpc.net #include #include using namespace std; int num[10000]; int main() { int n; cin >>..
![[C++] ๋นํธ ์ฐ์ฐ์](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD1QPc%2FbtqDQa5uyTc%2FLxixyR8H86MB2rrHFrsxv0%2Fimg.png)
[C++] ๋นํธ ์ฐ์ฐ์
๋นํธ ์ฐ์ฐ์ ์ ์ ํ์ ์ ํผ์ฐ์ฐ์์๋ง ์ ์ฉ๋ ์ ์๋ค. ๊ธฐ๋ณธ ์๋ฆฌ A^B๋ ๊ฐ์ด ๊ฐ์ผ๋ฉด 0 ๋ค๋ฅด๋ฉด 1์ ๋ฐํํ๋ค. ~A๋ -A-1๊ณผ ๊ฐ๋ค. ์ํํธ ์ฐ์ฐ์์์ ๋น ๋นํธ์ ๋ชจ๋ 0์ด ์ฑ์์ง์ง๋ง >> ์ฐ์ฐ์์์ A๊ฐ ์์์ธ ๊ฒฝ์ฐ์ 1์ด ์ฑ์์ง๋ค. ๋ฌธ์ https://tech.kakao.com/2017/09/27/kakao-blind-recruitment-round-1/ ์นด์นด์ค ์ ์ ๊ณต์ฑ 1์ฐจ ์ฝ๋ฉ ํ ์คํธ ๋ฌธ์ ํด์ค ‘๋ธ๋ผ์ธ๋’ ์ ํ์ผ๋ก ์ค์๋์ด ์์๋ถํฐ ์์ฒญ๋ ํ์ ๋ฅผ ๋ชฐ๊ณ ์จ ์นด์นด์ค ๊ฐ๋ฐ ์ ์ ๊ณต์ฑ. ๊ทธ ์ฒซ ๋ฒ์งธ ๊ด๋ฌธ์ธ 1์ฐจ ์ฝ๋ฉ ํ ์คํธ๊ฐ ์ง๋ 9์ 16์ผ(ํ ) ์คํ 2์๋ถํฐ 7์๊น์ง ์ฅ์ฅ 5์๊ฐ ๋์ ์จ๋ผ์ธ๏ฟฝ๏ฟฝ tech.kakao.com #include using namespace std; int main(..
![๋๊ธฐ์ ๋น๋๊ธฐ & Blocking๊ณผ Non-Blocking](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUVDXW%2FbtrJD3ZBwqg%2FekW0y7kTEkvXnKtcKVdftK%2Fimg.png)
๋๊ธฐ์ ๋น๋๊ธฐ & Blocking๊ณผ Non-Blocking
๋๊ธฐ์ ๋น๋๊ธฐ & Blocking๊ณผ Non-Blocking 1. ๋๊ธฐ(Synchronous)์ ๋น๋๊ธฐ(Asynchronous) ํจ์๋ฅผ ์คํ์ํด๊ณผ ๋์์ ๋ฐํ ๊ฐ์ด ๊ธฐ๋๋๋ ๊ฒฝ์ฐ๋ ๋๊ธฐ๋ผ ํํํ๊ณ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ๋ ๋น๋๊ธฐ๋ผ๊ณ ํํํ๋ค. ๋๊ธฐ: ์คํ๋์์ ๋ ๊ฐ์ด ๋ฐํ๋๊ธฐ ์ ๊น์ง๋ Blocking ์ํ์ด๋ค. ๋น๋๊ธฐ: Blocking ๋์ง ์๊ณ ์ด๋ฒคํธ ํ์ ๋ฃ๊ฑฐ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋์๊ฒ ํด๋น task๋ฅผ ์์ํ๊ณ ๋ค์ ์ฝ๋๋ฅผ ์คํํ๋ฏ๋ก ๊ธฐ๋๋๋ ๊ฐ์ด ๋ฐ๋ก ๋ฐํ๋์ง ์๋๋ค. 2. Blocking๊ณผ Non-Blocking ๊ฐ๋จํ ๋งํด์ ํธ์ถ๋ ํจ์๊ฐ ํธ์ถํ ํจ์์๊ฒ ์ ์ด๊ถ์ ๊ฑด๋ค์ฃผ๋ ์ ๋ฌด์ ์ฐจ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. 1) Blocking I/O ํ๋ก์ธ์ค(์ค๋ ๋)๊ฐ ์ปค๋์๊ฒ ์ ์ถ๋ ฅ ์์ ์ ์์ฒญํ๋ recvfrom() ํจ..
[C++] ์ต๋จ ๊ฒฝ๋ก(๋ค์ต์คํธ๋ผ, ํ๋ก์ด๋ ์์ฌ, ๋ฒจ๋ง ํฌ๋)
์ต๋จ ๊ฒฝ๋ก ๋ ์ ์ ์ฌ์ด์ ๊ฒฝ๋ก ์ค ๊ฐ์ ์ ๊ฐ์ค์น ํฉ์ด ์ต์์ธ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. 1. ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ค์น๊ฐ ์ ์ ์์๋๋ก ๊ทธ ์ ์ ์ ์ฐ๊ฒฐ๋ ์ ์ ์ ๋ฐฉ๋ฌธํ๋ฉด์ ๊ฐ์ ๊ฐฑ์ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ๊ฒฝ๋ก๋ ๊ตฌํ ์ ์๋ค. ๊ฐ์ค์น ํฉ์ ์ต๋๊ฐ์ ๊ฐ์ค์น ์ต๋๊ฐ * (์ ์ ๊ฐ์ - 1) ์ด๋ค. 1) ๋ฌธ์ https://www.acmicpc.net/problem/1753 1753๋ฒ: ์ต๋จ๊ฒฝ๋ก ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ V์ ๊ฐ์ ์ ๊ฐ์ E๊ฐ ์ฃผ์ด์ง๋ค. (1≤V≤20,000, 1≤E≤300,000) ๋ชจ๋ ์ ์ ์๋ 1๋ถํฐ V๊น์ง ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์๋ค๊ณ ๊ฐ์ ํ๋ค. ๋์งธ ์ค์๋ ์์ ์ ์ ์ ๋ฒํธ K(1≤K≤V)๊ฐ ์ฃผ์ด์ง๋ค. ์ ์งธ ์ค๋ถํฐ E๊ฐ์ ์ค์ ๊ฑธ์ณ ๊ฐ ๊ฐ์ ์ ๋ํ๋ด๋ ์ธ ๊ฐ์ ์ ์ (u, v, ..
![[C++] ๊น์ด ์ฐ์ ํ์(DFS), ๋๋น ์ฐ์ ํ์(BFS)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsyyMC%2FbtqDTkMF622%2Frn3tezXEdkSMBRlklsxUqK%2Fimg.gif)
[C++] ๊น์ด ์ฐ์ ํ์(DFS), ๋๋น ์ฐ์ ํ์(BFS)
๊น์ด ์ฐ์ ํ์(Depth First Search)๊ณผ ๋๋น ์ฐ์ ํ์(Breadth First Search) ๊น์ด ์ฐ์ ํ์์ ํ ๋ฐฉํฅ์ผ๋ก ๊ณ์ ๊ฐ๋ค๊ฐ ๋ ์ด์ ๊ฐ ์ ์์ผ๋ฉด ๋ถ๋ชจ ๋ ธ๋๋ก ๋์์ ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ํ์ํ๋ค. ์ฃผ๋ก Stack์ด๋ ์ฌ๊ท ํจ์๋ฅผ ์ด์ฉํด ๊ตฌํํ๋ค. ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๊ฑฐ๋ ๊ฐ์ค์น, ์ด๋ ๊ณผ์ ์ ์ ์ฝ์ด ์์ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ฉด ์ข๋ค. ์๊ธฐ ์์ ์ ํธ์ถํ๋ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ํํ๋ฅผ ๊ฐ๊ณ ์๋ค. BFS๋ณด๋ค ์ข ๋ ๊ฐ๋จํ๋ ๋จ์ ๊ฒ์ ์๋ ์์ฒด๋ BFS๋ณด๋ค ๋๋ฆฌ๋ค. ๋๋น ์ฐ์ ํ์์ ํ์ฌ ๋ ธ๋์์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ธ๋๋ฅผ ๋จผ์ ๋ฐฉ๋ฌธํด ํ์ํ๋ค. ์ฃผ๋ก Queue๋ฅผ ์ด์ฉํด ๊ตฌํํ๋ค. ๋ ๋ ธ๋ ์ฌ์ด์ ์ต๋จ ๊ฒฝ๋ก ํน์ ์์์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ฉด ์ข๋ค. ๊ธฐ๋ณธ ์๋ฆฌ https://www.acmicpc.n..