Algorithm ๐ง๐ป๐ป456 ๋นํธ๋ง์คํฌ(BitMask) ๋นํธ๋ง์คํฌ(BitMask) ๋นํธ๋ ์ปดํจํฐ์์ ๋ค๋ฃจ๋ ์ต์ ๋จ์์ด๋ฉฐ, ์ ์๋ฅผ ์ด์ง์(0, 1)๋ก ํํํฉ๋๋ค. ์ด๋ฌํ ๋นํธ์ ํน์ฑ์ ์ด์ฉํ ์ฐ์ฐ์ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ๊ธฐ๋ฒ์ ๋นํธ๋ง์คํฌ(BitMask)๋ผ๊ณ ํฉ๋๋ค. ์ด์ง์๋ 0 ๋๋ 1์ ์ด์ฉํ๋ฏ๋ก ํ๋์ ๋นํธ(bit)๊ฐ ํํํ ์ ์๋ ๊ฒฝ์ฐ๋ ๋ ๊ฐ์ง์ ๋๋ค. ๋ณดํต ์ด๋ค ๋นํธ๊ฐ 1์ด๋ฉด ์ ๊ตฌ๊ฐ "์ผ์ ธ ์๋ค", 0์ด๋ฉด "๊บผ์ ธ ์๋ค"๋ผ๊ณ ๋งํ๋ฉฐ, ์ ๊ตฌ๋ฟ๋ง ์๋๋ผ ์๋์ฒ๋ผ ๋ ๊ฐ์ง ๊ฒฝ์ฐ๋ก ํํํ ์ ์๋ ์์๋ ๋ชจ๋ ๊ฐ๋ฅํฉ๋๋ค. ์์์ ์์ผ๋ฉด 1, ์์์ผ๋ฉด 0 ๋จ์๋ฉด 1, ์ฌ์๋ฉด 0 ์ ๋ต์ด๋ฉด 1, ์ค๋ต์ด๋ฉด 0 ์ฌ์ฉ ์ด์ ๋นํธ๋ง์คํฌ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ํฐ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ํ ์๊ฐ์ด ๋น ๋ฅด๋ค. ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ ๋ค. ๋นํธ๋ง์คํฌ ์ฐ์ฐ์ bit ์ฐ์ฐ์ด๊ธฐ.. 2022. 9. 16. [๋ฐฑ์ค,c++] 16719๋ฒ - ZOAC ๋ฌธ์ 16719๋ฒ: ZOAC 2018๋ 12์, ์ฒ์ ์์ํ๊ฒ ๋ ZOAC์ ์คํ๋์ ๋งก์ ์ฑ์ฐ๋ ๋๊ตฌ๋ณด๋ค ํ๋ คํ๊ฒ ZOAC๋ฅผ ์๋ฆฌ๋ ค ํ๋ค. ์ ๊ธ์๋ถํฐ ํ๋์ฉ ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ ๋๋ฌด ์์ํ๋ค๊ณ ์๊ฐํ ์ฑ์ฐ๋ ๋ฌธ์์ด์ ๋ณด์ฌ์ฃผ๋ ์๋ก www.acmicpc.net ์ฝ๋ #include using namespace std; string s; bool visited[101]; void backtracking(int start, int end){ if(start == end) return; char c = '~'; int idx = 0; for(int i=start; i 2022. 9. 16. [๋ฐฑ์ค,c++] 17276๋ฒ - ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ ๋ฌธ์ 17276๋ฒ: ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ํ์ ์ฐ์ฐ์ ๋ง์น ํ ๋ฐฐ์ด์ ์ํ๋ฅผ ์ถ๋ ฅํ๋ค. n์ค์ ๊ฑธ์ณ ๊ฐ ์ค์ n๊ฐ์ ์ ์๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ์ถ๋ ฅํ๋ค. www.acmicpc.net ์ฝ๋ #include #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int T; cin>>T; while(T--){ int n, d; cin>>n>>d; int map[501][501] = {0, }; int temp[501][501]; for(int i=0; imap[i][k]; } } memcpy(temp, map, sizeof(temp)); if(d > 0){ // ์๊ณ๋ฐฉํฅ 45๋ ํ์ int c.. 2022. 9. 15. [๋ฐฑ์ค,c++] 20436๋ฒ - ZOAC 3 ๋ฌธ์ 20436๋ฒ: ZOAC 3 ์ฒซ ๋ฒ์งธ ์ค์๋ ๋ ์ํ๋ฒณ ์๋ฌธ์ sL, sR์ด ์ฃผ์ด์ง๋ค. sL, sR์ ๊ฐ๊ฐ ์ผ์ ๊ฒ์ง์๊ฐ๋ฝ, ์ค๋ฅธ์ ๊ฒ์ง์๊ฐ๋ฝ์ ์ฒ์ ์์น์ด๋ค. ๊ทธ ๋ค์ ์ค์๋ ์ํ๋ฒณ ์๋ฌธ์๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ค. ๋ฌธ์์ด์ www.acmicpc.net ์ฝ๋ #include using namespace std; int map[3][10]; string top = "qwertyuiop"; string middle = "asdfghjkl"; string bottom = "zxcvbnm"; struct Info{ int r; int c; char hand; }; Info l, r; Info find_coor(char key){ int _r = 0, _c = 0; char hand; for(int i=0.. 2022. 9. 15. [๋ฐฑ์ค,c++] 20164๋ฒ - ํ์ ํ๋ฆฌ ํธ์ ๋ฌธ์ 20164๋ฒ: ํ์ ํ๋ฆญ ํธ์ ํธ์์ด๋ ์ง์๋ ํ์ ์ค์์ ์ด๋์ ์ด ๊ฐ์ ํ์๋ฅผ ๋ ์ข์ํ๋ค. ์ด์ ์ ํ๋ ํธ์์ด๋ ์์ฐจ์ ๋ฒํธํ์ด ํ์๋ก ๊ฐ๋ํ ๋ ์ฌ๋์ค๋ฌ์์ ๋๋ ์ ๋์ด๋ค. ์ ํ๋ฒํธ๋ ํ์๋ง ์๊ณ ์ถ๋ค. ๊ทธ๋ ๊ฒ www.acmicpc.net ์ฝ๋ #include #include #include using namespace std; int max_v = -1, min_v = 1e9+1; void backtraking(string s, int cnt){ for(char c : s){ if((c-'0')&1) cnt++; // ํ์ ๊ฐฏ์ ์นด์ดํ } if(s.length() == 1){ max_v = max(max_v , cnt); min_v = min(min_v, cnt); return; } if(s.. 2022. 9. 15. [๋ฐฑ์ค,c++] 20546๋ฒ - ๊ธฐ์ ์ ๋งค๋งค๋ฒ ๋ฌธ์ 20546๋ฒ: ๐ ๊ธฐ์ ์ ๋งค๋งค๋ฒ ๐ 1์ 14์ผ ๊ธฐ์ค ์คํ์ด์ ์์ฐ์ด ๋ ํฌ๋ค๋ฉด "BNP"๋ฅผ, ์ฑ๋ฏผ์ด์ ์์ฐ์ด ๋ ํฌ๋ค๋ฉด "TIMING"์ ์ถ๋ ฅํ๋ค. ๋์ ์์ฐ์ด ๊ฐ๋ค๋ฉด "SAMESAME"์ ์ถ๋ ฅํ๋ค. ๋ชจ๋ ๊ฒฐ๊ณผ ๋ฐ์ดํ๋ฅผ ์ ์ธํ๊ณ ์ถ๋ ฅํ๋ค. www.acmicpc.net ์ฝ๋ #include #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int N; cin>>N; vector v; for(int i=0; i>inp; v.push_back(inp); } int jun = 0, sung = 0; int _N = N; for(auto it: v){ // ์คํ์ด์ ๋งค์ if(it jun) cout 2022. 9. 15. [๋ฐฑ์ค,c++] 2615๋ฒ - ์ค๋ชฉ ๋ฌธ์ 2615๋ฒ: ์ค๋ชฉ ์ค๋ชฉ์ ๋ฐ๋ํ์ ๊ฒ์ ๋ฐ๋์๊ณผ ํฐ ๋ฐ๋์์ ๊ต๋๋ก ๋์์ ๊ฒจ๋ฃจ๋ ๊ฒ์์ด๋ค. ๋ฐ๋ํ์๋ 19๊ฐ์ ๊ฐ๋ก์ค๊ณผ 19๊ฐ์ ์ธ๋ก์ค์ด ๊ทธ๋ ค์ ธ ์๋๋ฐ ๊ฐ๋ก์ค์ ์์์๋ถํฐ ์๋๋ก 1๋ฒ, 2๋ฒ, ... ,19๋ฒ์ ๋ฒํธ www.acmicpc.net ์ฝ๋ #include #include using namespace std; int N = 19; int map[19][19]; vector coor; /* ํ๋จ, ์ฐ์ธก, ์ฐ์๋จ, ์ฐํ๋จ */ bool check(pair _coor){ // ํ๋จ int r = _coor.first; int c = _coor.second; if(r 2022. 9. 15. [๋ฐฑ์ค,c++] 2002๋ฒ - ์ถ์ ๋ฌธ์ 2002๋ฒ: ์ถ์ ์ ๋ ฅ์ ์ด 2N+1๊ฐ์ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ์ฒซ ์ค์๋ ์ฐจ์ ๋์ N(1 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋๊ทผ์ด๊ฐ ์ ์ ์ฐจ๋ ๋ฒํธ ๋ชฉ๋ก์ด ์ฃผ์ด์ง๊ณ , N+2์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์์์ด www.acmicpc.net ์ฝ๋ #include #include #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int N; cin>>N; unordered_map um; vector inp; for(int i=0; i>_inp; um.insert({_inp, i}); } for(int i=0; i>_inp; inp.push_back(_inp); } int c.. 2022. 9. 15. [๋ฐฑ์ค,c++] 11383๋ฒ - ๋ ๋ฌธ์ 11383๋ฒ: ๋ ์ ๋ ฅ์ ์ฒซ ๋ฒ์งธ ์ค์ N, M (1 ≤ N, M ≤ 10)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์ ๊ฐ ์ค์๋ M๊ฐ์ ๋ฌธ์๊ฐ ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์ ๊ฐ ์ค์๋ 2M๊ฐ์ ๋ฌธ์๊ฐ ์ฃผ์ด์ง๋ค. ๋ชจ๋ ๋ฌธ์๋ ์๋ฌธ ์ํ๋ฒณ ๋๋ฌธ์ ํน www.acmicpc.net ์ฝ๋ #include #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int N, M; cin>>N>>M; vector v, scale; for(int i=0; i>inp; v.push_back(inp); } for(int i=0; i>inp; scale.push_back(inp); } for(int idx=0; idx 2022. 9. 15. ์ด์ 1 2 3 4 5 6 ยทยทยท 51 ๋ค์