์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- ๋ฐฑ์ค1874
- ๋ฐ์ดํฐํ์
- StringBuffer
- ์๋ฐ
- ์คํ
- ๋ฌธ์์ด
- ์คํธ๋ฆผ
- java
- ์
- ๋
- ์ฟ ํกERD
- ์คํ์์ด
- stream
- StringBuilder
- ์ฟ ํกDB
- ์ฐ
- ํ๋ฐฉ์ฟผ๋ฆฌ
- ์ฐ์ฐ์
- ๋ฐฑ์ค9012
- ๋ฐฐ์ด
- ๋ฐฑ์ค9093
- ๋ฐฑ์ค11053 #ํ์ด์ฌ #python
- Today
- Total
Tech Log ๐ ๏ธ
[๋ฐฑ์ค] 11723 ์งํฉ JAVA ๋ณธ๋ฌธ
๋ถ์
๋นํธ๋ง์คํน์ ์ด์ฉํ์ฌ ํธ๋ ๋ฌธ์ ์ด๋ค.
๋นํธ๋ง์คํน์ด๋?
- ์ปดํจํฐ๋ ๋ชจ๋ ์๋ฃ๋ฅผ ์ด์ง์๋ก ํํํ๋๋ฐ, ์ด๋ฅผ ์ด์ฉํ์ฌ ์๋ฃ๊ตฌ์กฐ๋ก ์ฐ๋ ๊ธฐ๋ฒ์ด๋ค.
๋นํธ๋ง์คํน์ ํตํด ์ค์์น,๋ฐฉ๋ฌธ ์ฒ๋ฆฌ ๋ฑ ๋ค์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
๋นํธ์ฐ์ฐ์์ ์ข ๋ฅ
- ๋นํธ๋ง์คํฌ์ ์ํ๋ฅผ ๋ณ๊ฒฝ์ํค๊ธฐ ์ํด ๋ค์ํ ๋นํธ ์ฐ์ฐ์๋ฅผ ํ์ฉํ ์ ์๋ค.
1. a | b
- a์ ๋ชจ๋ ๋นํธ์ b์ ๋ชจ๋ ๋นํธ๋ฅผ OR ์ฐ์ฐ์ ์ํํ๋ค.
ex) a=1 , b=1 ์ผ๋ a | b = 1
a=1 , b=0 ์ผ๋ a | b = 1
a=0 , b=0 ์ผ๋ a | b = 0
2. a & b
- a์ ๋ชจ๋ ๋นํธ์ b์ ๋ชจ๋ ๋นํธ๋ฅผ AND ์ฐ์ฐ์ ์ํํ๋ค.
ex) a=1 , b=1 ์ผ๋ a & b = 1
a=1 , b=0 ์ผ๋ a & b = 0
a=0 , b=0 ์ผ๋ a & b = 0
3. a ^ b
- a์ ๋ชจ๋ ๋นํธ์ b์ ๋ชจ๋ ๋นํธ๋ฅผ XOR ์ฐ์ฐ์ ์ํํ๋ค. (๋ค๋ฅด๋ฉด 1 , ๊ฐ์ผ๋ฉด 0)
ex) a=1 , b=1 ์ผ๋ a ^ b = 0
a=1 , b=0 ์ผ๋ a ^ b = 1
a=0 , b=0 ์ผ๋ a ^ b = 0
4. ~a
- a์ ๋ชจ๋ ๋นํธ์ NOT ์ฐ์ฐ์ ํ๋ค.
5. a << b OR a >> b
- a์ ๋นํธ๋ฅผ ์ผ์ชฝ(์ค๋ฅธ์ชฝ)์ผ๋ก b๋งํผ ์ฌํํธํ๋ค.
ex) 1 << 2 : 2์ 2์น
1 << 0 : 2์ 0์น
์์ ์ฐ์ฐ์๋ค์ ์์ฉํ์ฌ ๋ ๋ค์ํ ์ฐ์ฐ์ ์ํํ ์ ์๋ค.
1.idx๋ฒ์งธ ๋นํธ ์ผ๊ธฐ
S |= (1<<idx)
2. idx๋ฒ์งธ ๋นํธ ๋๊ธฐ
S &= ~(1<<idx)
3. idx์ ๋ํ XOR ์ฐ์ฐ
S ^= (1<<idx)
4. ์ตํ์ ์ผ์ ธ์๋ idx ์ฐพ๊ธฐ
idx = (S & -S)
* -S = (~S+1) ์ ํน์ฑ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ๋ค.
ex ) S = 1010 , ~S = 0101
-S = 0101 + 1
= 0110
S & -S = 2(๋ง์ง๋ง ์ธ๋ฑ์ค)
5. n์ธ ๋ชจ๋ ์งํฉ์ ๋นํธ ์ผ๊ธฐ
(1<<n) - 1
6. idx๋ฒ์งธ ๋นํธ๊ฐ ์๋ ์ง ํ์ธํ๊ธฐ
if(S & (1 << idx))
์ด ๊ฐ๋ ๋ค์ ์์งํ๋ฉด ์์ ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค !
์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import static java.lang.Math.abs;
public class Main {
public static void main(String[] args) throws IOException {
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
int bit=0;
for(int i=0;i<num;i++){
StringTokenizer st = new StringTokenizer(br.readLine());
int seq=0;
switch (st.nextToken()){
case "add":
seq = Integer.parseInt(st.nextToken());
bit |= (1<<(seq-1));
break;
case "remove":
seq = Integer.parseInt(st.nextToken());
bit &= ~(1<<(seq-1));
break;
case "check":
seq = Integer.parseInt(st.nextToken());
sb.append((bit & (1<<(seq-1))) != 0 ? "1\n" : "0\n");
break;
case "toggle":
seq = Integer.parseInt(st.nextToken());
bit ^= (1 << (seq-1));
break;
case "all":
bit |= (~0);
break;
case "empty":
bit &= 0;
break;
}
}
System.out.println(sb);
}
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 14889๋ฒ ์คํํธ์ ๋งํฌ ์๋ฐ(๋ฐฑํธ๋ํน , ๋นํธ๋ง์คํน) (0) | 2023.03.28 |
---|---|
[๋ฐฑ์ค] 1991๋ฒ ํธ๋ฆฌ์ํ JAVA (0) | 2023.03.26 |
[๋ฐฑ์ค] ๋ฐฑ์ค ๊ณจ๋ ๋ฌ์ฑ ! (0) | 2023.03.22 |
๋ฐฑ์ค 1260๋ฒ) DFS์ BFS java (0) | 2023.03.13 |
๋ฐฑ์ค 3085๋ฒ) ์ฌํ ๊ฒ์ java (0) | 2023.03.09 |