- ๋นํธ๋งต
- ์ํฐ๋
- go
- ๋ค์ต์คํธ๋ผ
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ํธ๋ฆฌ
- BFS
- ํ๋ก๊ทธ๋๋จธ์ค
- Python
- Union-Find
- DFS
- ์์ฝ๋
- nestjs
- golang
- LCs
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- ์นด์นด์ค ์ฝํ
- ๋ฐฑ์ค
- js
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ๋นํธ๋ง์คํน
- ์ด๋ถํ์
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ์ฌ๊ท
- DP
- C++
- ์นด์นด์ค2021
- ์๊ณ ๋ฆฌ์ฆ
- ์น๋ฆฐ์ด
- Today
- Total
Hello Ocean! ๐ผ
[๋ฐฑ์ค/C++] 13701. ์ค๋ณต ์ ๊ฑฐ ๋ณธ๋ฌธ
๋ฌธ์
https://www.acmicpc.net/problem/13701
N๊ฐ์ ์ ์ A1, A2, ..., AN ์ ์ฝ๊ณ , ์ด๋ค ์ค์์ ๋ฐ๋ณต๋๋ ์๋ฅผ ์ ์ธํ๊ณ ๋จ์ N'๊ฐ์ ์ B1, B2, ..., BN’ ์ ์ ๋ ฅ๋ ์์๋๋ก ์ถ๋ ฅํ์์ค. ์ด๋,
- 0 ≤ Ai < 2^25 = 33554432, i=1,2,…,N.
- ์ ๋ ฅ์ ๊ฐ์ N์ 1 ์ด์ 500๋ง ์ดํ์ด๋ค.
ํ์ด
์ซ์๋ฅผ ์์๋๋ก ์ ๋ ฅ๋ฐ์์, ์ด์ ์ ๋ค์ด์จ์ ์ด ์๋ ์ซ์๋ฉด ์ถ๋ ฅํ๋ ์์ฃผ ๊ฐ๋จํด๋ณด์ด๋ ๋ฌธ์ ์์ง๋ง,
๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ์ด ๋ฌธ์ ์ ํต์ฌ์ด์๋ค.
์ซ์์ ๋ฒ์๊ฐ 2^25๊น์ง์๊ธฐ ๋๋ฌธ์, ์ค๋ณต์ฒดํฌํ๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ 1<<2^25๋ก ์ก์ผ๋ฉด ์ด ๋ฌธ์ ์ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ธ 8MB๋ฅผ ๋์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์, ๋นํธ ๋ง์คํฌ๋ฅผ ์ด์ฉํด์ผ ํ๋ ๋ฌธ์ ์๋ค. ํ์ด๋ ๋ค๋ฅธ ์ฌ๋ฌ ๋ธ๋ก๊ทธ๋ค์ ์ฐธ๊ณ ํ๋ค! ๋ค๋ค ๋น์ทํ ๋ฐฉ์์ผ๋ก ํ์ด๋ฅผ ํ ๊ฒ ๊ฐ๋ค.
int๊ฐ 32๋นํธ๋ผ๋ ๊ฒ์ด ํต์ฌ์ด๋ค.
๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ (1<<2^25) / 32๋ก ์ ํ๊ณ , ์ ๋ ฅ๋ ์ซ์ A์ ๋ํด
A/32 : ์ธ๋ฑ์ค, 1<<(A%32) : ๊ฐ ์ผ๋ก ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
์ฒ์์ ์ด๊ฒ ๋ฌด์จ๋ง์ธ์ง ์ดํด๊ฐ ์๋์์ผ๋ ๊ทธ๋ฆผ์ ๊ทธ๋ ค๋ณด๋ฉด์ ์ดํดํ ์ ์์๋ค.
๋ฐฐ์ด ํ ์นธ์ int์ด๋ค. ๊ทธ๋ฆฌ๊ณ int๋ 32๊ฐ์ ๋นํธ๋ก ํํ๋๋ค.
๋ฐ๋ผ์, ์ซ์๋ฅผ ์ ๋ ฅํ์ ๋ ์๋์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋๊ณ ๊ฒฐ๋ก ์ ์ผ๋ก ๋นํธ๋ง์คํน์ ์ด์ฉํด ๋ฐฐ์ด ํ ์นธ์ 32๊ฐ์ ์ซ์๋ฅผ ํํํจ์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ๋ฅผ 32๋ฐฐ ์๋ ์ ์๋ ๊ฒ์ด๋ค.
์ฝ๋
#include <iostream>
using namespace std;
int check[(1 << 25)/32];
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int input;
while (cin>>input){
int idx = input / 32;
int val = 1 << (input % 32);
if (!(check[idx]&val)) {
check[idx] += val;
cout << input << " ";
}
}
return 0;
}
๊ฒฐ๊ณผ
์ผ๋ง์ ๋ถํฐ cin,cout ๋์ ์ scanf, printf๋ก ์ ์ถ๋ ฅ์ ๋์ ํ๊ณ ์๋๋ฐ,
์ด๋ฒ ๋ฌธ์ ์์๋ cin,cout์ด ์๊ฐ์ด ๋ ์ ๊ฒ ๊ฑธ๋ ธ๋ค. ์์ง..?
(๋งจ ์๋ : scanf,printf์ด์ฉ, ์์ ๋๊ฐ : cin,cout์ด์ฉ)
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 18119. ๋จ์ด ์๊ธฐ (0) | 2021.08.10 |
---|---|
[C++/๋ฐฑ์ค] 17244. ์๋ง๋ค์ฐ์ฐ (0) | 2021.08.03 |
[C/C++] scanf, scanf_s๋ก ์ ๋ ฅ๋ฐ์ ๋ "\n" ์ด ์์ฌ ๋ค์ด๊ฐ๋ ๋ฌธ์ (0) | 2021.07.30 |
[๋ฐฑ์ค/C++] 11437, 11438. LCA 1,2 (0) | 2021.07.27 |
[๋ฐฑ์ค/C++] 12888. ์์ ์ด์ง ํธ๋ฆฌ ๋๋ก ๋คํธ์ํฌ (0) | 2021.07.20 |