"(c++20) Three-way Comparsion(3๋ฐฉํฅ ๋น๊ต ์ฐ์ฐ์)/์ฐ์ฃผ์ " c++20์ ์ถ๊ฐ๋ ๊ฒ ์ค์ ์์ฃผ ํธ์ํ ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ์ด ์๊ฒผ๋ค. !! ์ง๊ธ์ ์๋๋๋ผ๋(?) ์์ฃผ ์ ์ฉํ๊ฒ ์ฐ์ผ ๊ฑฐ ๊ฐ์ ๋ ์์ด๋ผ์ ์ ๋ฆฌํด๋ณธ๋ค. class๋ struct๋ฅผ ๋ง๋ค์ด์ ๊ทธ ๊ฐ์ฒด๋ผ๋ฆฌ ๋น๊ต๋ฅผ ํ๊ธฐ ์ํด์๋ ํ์์ ๋ฐ๋ผ [ '' '>=' '==' '!=' : 6๊ฐ] ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ์ ํด์ผํ๋ค. ํ์ง๋ง ์ฌ๊ธฐ์ c++20์ ์ถ๊ฐ๋ Three-way Comparsion ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด 6๊ฐ๋ฅผ ํฌํจํ operatorํ๋๋ง ์ ์ํ๋ฉด ๋๋ค. #include using namespace std;struct Myoperator{ Myoperator(int value) : _value(value) { } //auto ope..
"(c++20) consteval, constinit" C++20์ ์ถ๊ฐ๋ Language ์ค consteval, constinit์ ๋ํด์ ์์๋ณด๊ณ ๊ธฐ์กด์ ์์๋ const์ constexpr๊ณผ ๋น๊ตํด๋ณด๋ ค๊ณ ํ๋ค. ์ผ๋จ ์ด๋ค ๋จ์ด์ ์ค์๋ง์ธ์ง ํ์ธํ๊ณ ๋์ด๊ฐ์ ~const: Constant ์์constexpr: Constant Expression ํํ// c++11consteval: Constant Evaluation ๊ฒ์ฆ // c++20 constinit: Constrant Initialization ์ด๊ธฐํ // c++20ํจ์์ ํค์ํธ๋ฅผ ๋ถ์์ ๋, ๋ณ์์ ํค์๋๋ฅผ ๋ถ์์ ๋๋ฅผ ๋๋ ์ ์ ๋ฆฌํด๋ณด์๋ค. 1. ํจ์ (์ผ๋ฐ vs constexpr vs consteval) ๋จผ์ ์ ํํด์ผ ํ ๊ฐ๋ ์ ๋ฐํ์(..
c++17์ ์ถ๊ฐ๋ ๋ฌธ๋ฒ์ ๋์ "์ ๋ฌธ๊ฐ๋ฅผ ์ํ C++17(๊ฐ์ 4ํ)"์์ ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ ์ํด์ ์ ๋ฆฌํด๋ณด์๋ค. page 58์ค์ฒฉ๋ ๋ค์์คํ์ด์ค (nested namespace)61std::byte69if๋ฌธ์ ์ด๋์ ๋ผ์ด์ (intializer : ์ด๊ธฐ์)72switch๋ฌธ์ ์ด๋์ ๋ผ์ด์ (intializer : ์ด๊ธฐ์)81๊ตฌ์กฐ์ ๋ฐ์ธ๋ฉ(structured binding)138๋ก์ฐ ๋ ๋ฒจ ์ซ์ ๋ณํ "}">#include 140std::string_viewํด๋์ค298weak_ptr๋ shared_ptr์ ๋ง์ฐฌ๊ฐ์ง๋ก C์คํ์ผ ๋ฐฐ์ด์ ์ง์ํ๋ค.299weak_from_this()390static ๋ฐ์ดํฐ ๋ฉค๋ฒ๋ฅผ inline์ผ๋ก ์ ์ธํ ์ ์๋ค.530std::as_const() ํฌํผ ๋ฉ์๋ "}">#include (obj)..
HTTP Error 416 "The requested range is not satisfiable" ???????????????????? ๋ฒ์๋ฅผ ์๋ชป ์ ๋ ฅํ๊ฑฐ๋ ๋ ๋ฒ์๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ. ๐ธ ๋ฐ์ํ๊ฒ ๋ ์ํฉ: ์์ ์ ํ๋ ์ค... ํ์ผ์ ๋ฐ๋ค๊ฐ ์ค๊ฐ์ ๋ฉ์ท์ ๊ฒฝ์ฐ(๊ฐ์ข ๋ฑ๋ฑ ์์ํ์ง ๋ชปํ ์ข ๋ฃ) ๋ค์์ ๋ค์ ํ์ผ์ ์ด์ด๋ฐ๊ณ ์ถ์ด์ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ๋ฐ์ํ ์๋ฌ์๋ค. HTTP์ ํน์ ๋ฒ์(byte)๋ถํฐ ํ์ผ์ ๋ฐ๊ฒ ๋ค๊ณ ์์ฒญ์ ๋ณด๋์๋ค. HTTP์ ์ฐ๊ฒฐ์ ๋์ง๋ง ์ ๋ฌ ๋ฐ์ ๋ด์ฉ์๋ ์์ ๊ฐ์ ํ ์คํธ๊ฐ ํฌํจ๋ buffer๋ฅผ ๋ฐ์๋ค. ์์ฒญ๋ฌธ๋ฒ์ด ์๋ชป๋๋ฉด "Error 400 : Bad Request - Invalid Header" ์ ๋ฑ์ด๋ธ๋ค. ์ฆ ๋ฌธ๋ฒ์๋ ๋ฌธ์ ๊ฐ ์์๋ค. ("HTTP ๋ฒ์ ์์ฒญ" ํค์๋๋ก ๊ตฌ๊ธ๋ง..
์ผํ๋ค "#define ID_MYMESSAGE WM_USER+1" ์ด๋ฐ ์์ผ๋ก ์ ์ ๋ ๋ํ์ธ์ ๋ณด๊ณ WM_USER๊ฐ ๋ฌด์์ด๋ฉฐ.. ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ๊ถ๊ธํด์ ์ ๋ฆฌํด๋ณธ๋ค..์์ ๊ฐ์ ์ ์๋ ์ฌ์ฉ์ ์ง์ /์ ์ ๋ฉ์ธ์ง๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ messageID๋ฅผ ๋ถ์ฌํ๋ ์ฝ๋ ์์ผ๋ฉฐ ๋ฉ์์ง ๋งต์ ๋ง๋๋ ๊ณผ์ ์ ์๋์ ๊ฐ๋ค. 1. ์ฌ์ฉ์ ์ ์ ํจ์๋ฅผ ๋ง๋ ๋ค. (๋ฉ์์ง ํธ๋ค๋ฌ๋ฅผ ์ ์ํ๋ค.) ์ฌ์ฉ์ ์ ์ ํจ์๋ ์ ํด์ง ํจ์ํ(์ํ)์ด ์๋ค. ์๋์ ๊ฐ๊ฒ ํจ์ํ์ ์ง์ผ์ ์ ์ ํด์ผํ๋ค. afx_msg LRESULT MyPinkoFunc(WPARAM wParam, LPARAM lParam) { return (0); } 2. ON_MESSAGE ON_MESSAGE( message, memberFxn ) message : ๋ฉ์์ง ..
** ์ฑ๊ธํด ํจํด์ด๋? ** ๐ ์ ์ / ํน์ง 1. ์ฑ๊ธํด(singleton)์ด๋ ๋์์ธ ํจํด ์ค ๊ฐ์ฅ ๊ฐ๋จํ ํจํด์ผ๋ก '์ด๋ค ๊ฐ์ฒด ํ๋'๋ฅผ ์๋ฏธํ๋ค. ์ฑ๊ธํด ํจํด์ ํ๋ก๊ทธ๋จ์ ํด๋์ค์ ์ธ์คํด์ค๊ฐ ๋ฑ ํ๋๋ง ์กด์ฌํ๋๋ก ํ๋ ๋์์ธ ํจํด์ด๋ค. 2. ์ธ๋ถ ์์คํ ๊ณผ ์ํธ์์ฉํ๋ ์ ํธ๋ฆฌํฐ ํด๋์ค ๋๋ ์ ์ญ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ํด๋์ค ๊ตฌํ์ ์ ํฉํ๋ค. ex. ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๋ก๋, ํ์ผ ์์คํ ๋ก๋, ๊ณต์ฉ gui๋ฑ(๊ฒ์์์ ํ์ ์ฐฝ or ํดํ์ฐฝ ..), ๋ก๊ฑฐ(logger) ๐ธ ์ฌ๊ธฐ์ ์ ๊น !! ๐ธ * ์ธ์คํด์ค์ ๊ฐ์ฒด์ ์ฐจ์ด๋ ๋ฌด์์ผ๊น? ๊ฐ๋จํ ๋งํด ๊ฐ์ฒด๋ ์ ์ธ์ด๊ณ ์ธ์คํด์ค๋ ์ค์ฒดํ์ด๋ค. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ํด๋น ํด๋์ค์ ๊ตฌ์กฐ๋ก ์ปดํจํฐ ์ ์ฅ๊ณต๊ฐ์ ์ค์ ๋ก ๋ ๋ฆฝ๋ ๋ฐ์ดํฐ ๊ณต๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ฉด ๊ทธ๊ฒ์ ์ธ์คํด์คํ๋ผ..
์ค๋์ "ํธ๋ญ์ด์์ธ๊ต" ๋ณ์๋ฆฌ ๋ธ๋ก๊ทธ๋ฅผ ์ด์ํ๋ ๊น๋์ค๋์ ํฌ์คํ ์ ํ์ณ์๋ค !! ๋๊ฐ์ด ํฌ์คํ ํด๋ ๋๋ค๊ณ ํ๋ฝ์ ๋ฐ์๊ธฐ ๋๋ฌธ์ ์ถ์ฒ๋ฅผ ๋ฐํ๊ณ ๊ฑฐ์ 80% ๊ฐ์ ๋ด์ฉ์ ํฌ์คํ ํ๋ค. ๊ณ ๋ง์์ ๊น๋์ค๋ ~ ** Map์ Key ๊ฐ์ผ๋ก Class/Struct ๋ฃ๊ธฐ ** ๐๋ชฉํ map์ key๊ฐ์ผ๋ก ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ ํ์ (int, string, float, double...)์ด ์๋ ์ฐ๋ฆฌ๊ฐ ์ง์ ๋ง๋ ํ์ (user defined type)์ ๋ฃ์ด๋ณด์. ๐ํน์ง Map์ key(ํค)์ Value(๊ฐ)์ด ์์ผ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ๋ก ํค๋ฅผ ํตํด ๊ฐ์ ์ ๊ทผ ํ ์ ์๋๋ก ๋ง๋ค์ด์ ธ ์๋ค. map์ key(ํค)์ ์ค๋ณต์ ํ์ฉํ์ง ์๊ณ , value(๊ฐ)์ ์ค๋ณต์ ํ์ฉํ๋ค. c++์ map์ ๋ ๋๋ธ๋ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ์ด ๋์ด์..
** ํฉํ ๋ฆฌ ํจํด์ด๋? ** ๐ ์ ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ๊ทธ ๊ฐ์ฒด์ ์์ฑ์๋ฅผ ์ง์ ํธ์ถํ์ง ์๊ณ , ๊ฐ์ฒด ์์ฑ์ ๋ด๋ดํ๋ ํฉํ ๋ฆฌ์ ์์ฒญํ๋ ๊ตฌ์กฐ๋ฅผ ๋ปํ๋ค. ๐ ์ฅ์ 1. ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ฝ๋๊ฐ ํ๋ก๊ทธ๋จ์ ์ด๊ณณ์ ๊ณณ์ ์ฐ๋งํ๊ฒ ํฉ์ด์ง์ง ์๊ณ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ์ ํ ๊ณณ์ ๋ชจ์๋ ์ ์๋ค. 2. ํด๋์ค ํ์ ์ ์ ํํ ๋ชฐ๋ผ๋ ํด๋์ค ๊ณ์ธต์ ๋ง๊ฒ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค. 3. ํฉํ ๋ฆฌ๋ ํด๋์ค ๊ณ์ธต์ ๋ฐ๋ผ ์คํํ ์ ์๋ค. 4. ๊ฐ์ฒด๋ฅผ ์ ํํ ์์๋ก ์์ฑํ๋ ค๋ฉด ๋ณต์กํ ๋จ๊ณ๊ฐ ํ์ํ๊ฑฐ๋, ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ํญ์ ๋ค๋ฅธ ๊ฐ์ฒด์ ์ผ์ ํ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐํด์ผ ํ ๋ ํฉํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํธํ๋ค. ** ํฉํ ๋ฆฌ ์ข ๋ฅ ** ๐ ์ ์ ํฉํฐ๋ฆฌ ๋ฉ์๋ (static factory method) ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ๋ฆฌํดํ๋ ํจ์. class Point..
๊ณต๋ถ ์ Tmi.๋งค์ผ ์ผ ์ง ์ผ ์ง ํ๋ ๊พธ๋ฏธ๋ ๋ ๋ ์๊ณ ๋๋ฅผ ๋๋ฌด ๋์ถฉ๋์ถฉ ์ด๊ฒ ๋๋ ๊ฑฐ ๊ฐ์์ ํํ๊ฐ ์ต๋๋ค. ์ท๋ ๊ฐ๋ฐฉ๋ ํ์ฅํ๋ ์ ์ฐ ์ง ์ค๋ ๋ ๊ฑฐ ๊ฐ์์. ๋๋ฅผ ์ํ ์๋น๋ ์์ด ๊ทธ๋ฅ ๋จน๊ณ ์๊ณ ์ผํฉ๋๋ค. ์ด๋ ๊ฒ ์ด๋ฉด ์ข์๊น? ๋ผ๋ ์๊ฐ์ด ์ข ์ข ๋ญ๋๋ค. ์ ์ด๊ณ ์๋๊ฑด ์๋๊ฑฐ ๊ฐ์ฃ ? ใ ใ ๊ณต๋ถ๋ ์กฐ๊ธ ์ฌ์์ด์. ๋์ ์๋๋ก ๊ณต๋ถํ๋ ค๊ณ ํ๋๋ฐ ๋จ๋ค์ ์๋๋ฅผ ๋ณด๊ณ ๋ถ์ํจ์ ๋๋ผ๋ฉด์ ์ฐ์ธ๊ฐ์ ์ฌ๋ ๊ฒ…? ์ฐธ ์์ด๋ฌ๋ํฉ๋๋ค. (ํ์ฌ..) ๋ฐฑ์ค ๋๋์ด 200๊ฐ ๋ํํ์ต๋๋ค. ์์ง ์ ์ ์์ง๋ง ์ด๋ฒ ์ฐ๋์ 500๊ฐ๋ ๋๊ณ ์ถ๋ค์. ์ง๊ธ์ ์ ๋ง ํธ๋ ๋ฐ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ์ด์ ์ ํ์๋ ๊ฑฐ์ ๋น์ทํ ๋ฌธ์ ์ฌ๋ ํค๋งค๋๋ฐ ๊ทธ๋ฌ์ง ์์ ๋ ์ด ์ฌ๊น์? ํ์ฌ ๊ณจ๋ 2 ์ ๋๋ค. ๋ฐฑ์ค์ด ํ๋ ๋๋์ด ๋๋ ๋ ํ ๋ฒ ๋ Tm..
Sparse Table (์คํ์ค ํ ์ด๋ธ) ํน์ง ๋ฐฉํฅ ๊ทธ๋ํ ์ ๋๋ค.๋ชจ๋ ์ ์ด ๋ชฉ์ ์ง๊ฐ ์์ต๋๋ค.๊ทธ ์ ์ ํ๊ณ ์๋ก์ด ์ ์ผ๋ก ๊ฐ๋๋ค.2์ ์ ๊ณฑ๊ทผ์ผ๋ก ๋์ฐฉํ ์ ์ ์ ์ฅํฉ๋๋ค. (1๋ฒ, 2๋ฒ, 4๋ฒ, 8๋ฒ ์ด๋์ ๋ํ ๋ฐฐ์ด์ ๋ชจ๋ ์ ์ฅํฉ๋๋ค.) ์์ ๋ฅผ ํ๋ฉด์ ์ค๋ช ํ๊ฒ ์ต๋๋ค. https://www.acmicpc.net/problem/17435 17435๋ฒ: ํฉ์ฑํจ์์ ์ฟผ๋ฆฌํจ์ f : {1, 2, ..., m}→{1, 2, ..., m}์ด ์๋ค. ์ด๋ fn : {1, 2, ..., m}→{1, 2, ..., m}์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ์. f1(x) = f(x) fn+1(x) = f(fn(x)) ์๋ฅผ ๋ค์ด f4(1) = f(f(f(f(1))))์ด๋ค. n๊ณผ x๊ฐ ์ฃผ์ด์ง ๋ fn(x)๋ฅผ ๊ณ์ฐํ๋www.acmicpc.n..