BitSet
- BitSet์ ๋นํธ๋ค๋ก ์ด๋ฃจ์ด์ง ๋ฐฑํฐ์ด๊ณ , ๊ฐ ๋นํธ๋ ์ธ๋ฑ์ค๋ฅผ ํตํด ๊ฐ๋ณ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ค. ์ด๋ฌํ ์ ์์ boolean ๋ฐฐ์ด๊ณผ ์ ์ฌํ๋ค.
- ๋์ ์ผ๋ก ํฌ๊ธฐ๋ฅผ ํ์ฅํ ์๋ ์์ผ๋ฉฐ, ํ์์ ๋ฐ๋ผ์ ๋ ๋ง์ ๋นํธ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์๋์ผ๋ก ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ค.
- ์ด๊ธฐ๊ฐ์ false.
- ๋ฉ์๋๋ค์ ์ฌ๊ธฐ์: https://docs.oracle.com/javase/8/docs/api/java/util/BitSet.html
BitSet vs. boolean ๋ฐฐ์ด
- boolean ๋ฐฐ์ด์ ๊ฐ boolean ๊ฐ์ 1๋นํธ๊ฐ ์๋ 1๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ ์ปดํจํฐ๊ฐ ๋ค๋ฃฐ ์ ์๋ ์ ๋ณด์ ์ต์ ๋จ์๊ฐ ๋ฐ์ดํธ์ด๊ธฐ ๋๋ฌธ.
- BitSet ํด๋์ค๋ ๋นํธ ๋จ์์ ์ฐ์ฐ์ ์ง์ํ์ฌ, ๋นํธ ๋ ๋ฒจ์์ ๋น ๋ฅธ ์ฐ์ฐ์ ์ํํ ์ ์๋๋ก ํด์ค๋ค. ์ด๋ boolean ๋ฐฐ์ด๋ก๋ ์ง์ ์ ์ผ๋ก ์ง์๋์ง ์๋ ๊ธฐ๋ฅ์ด๋ค.
ํน์ API์์ ํธํ์ฑ์ ์ ์ธํ๋ฉด ํจ์จ์ฑ์ผ๋ก๋ BitSet์ด ๋ ๋ฐ์ด๋ ๋ณด์ธ๋ค. ์ด์ฌํ ์ฐพ์๋ณด๋ boolean ๋ฐฐ์ด์ ์ฅ์ ์ "์ง๊ด์ ์ด๊ณ ๊ตฌํ์ด ๊ฐ๋จํ๋ค"๋ผ๊ณ ํ๋ ๊ธ๋ค์ด ๋ง์ง๋ง, BitSet๋ ์ด๋ฏธ ๊ตฌํ๋ ๋ฉ์๋๋ฅผ ๊ฐ๋ค ์ฐ๋ ๊ฒ์ด๋ผ ํฌ๊ฒ ์๋ฟ์ง๋ ์์๋ค. (๊ฒฐ๋ก ์ BitSet ์งฑ์งฑ๋งจ?)
์ ์ฉ ๋ฌธ์
์ด ๋ฌธ์ ์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋นก๋นกํ ๊ฒฝ์ฐ BitSet์ ์ฌ์ฉํ ์ ์๋ค.
๋๋ณด๊ธฐ
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine());
BitSet bset = new BitSet(1 << 25);
while (st.hasMoreTokens()) {
int A = Integer.parseInt(st.nextToken());
if (!bset.get(A)) {
sb.append(A).append(' ');
bset.set(A);
}
}
System.out.println(sb);
br.close();
}
}
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] JSch๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด ์๊ฒฉ ์ ์กํ๊ธฐ (0) | 2024.07.17 |
---|---|
[Java] ๋ถ๋์์์ ์ค์ฐจ ๊ด๋ฆฌํ๊ธฐ (0) | 2024.05.16 |