CT ๋ถ์ ๋ณด๊ธฐ
์ด๋ฒ ๋ฌธ์ ๋ SSAFY๋ฅผ ์ค๋นํ๋ฉฐ ์ถ์ฒ ๋ฐ์ ๋ฌธ์ ์ฌ์ ํ๊ฒ ๋์๋ค.
ํด๋น ๋ฌธ์ ๋ ๋นํธ ์ฐ์ฐ์ ์์ฉํด ํด๊ฒฐํด์ผ ํ๋ ๋ฌธ์ ์ธ๋ฐ, ์ง๊ธ๊น์ง ๋นํธ ์ฐ์ฐ์ด๋ผ๋ ๋ง์ ๋ค์ด๋ง ๋ดค์ง ์ ํํ ๋ฌด์์ธ์ง ๊ณต๋ถํ์ง ๋ชปํ๋ค.
๋นํธ ์ฐ์ฐ์ ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ๋ฉด์ ๋น๊ต ์ฐ์ฐ์๋ก ์ฌ์ฉํ๋ & ๋ | ๋ฑ์ ํ์ฉํด ๋นํธ(bit, 2์ง์๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ๋จ์)๋ฅผ ์ฐ์ฐํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
๋จผ์  ๋นํธ ์ฐ์ฐ์ ๋ํด ๊ณต๋ถํ๊ณ ๋ฐฑ์ค ๋ฌธ์ ๋ก ๋์ด๊ฐ๋๋ก ํ์!
๋นํธ ์ฐ์ฐ
์ฝ๋ฉ๊ต์ก ํฐ์จํผ์ค์ฟจ
4์ฐจ์ฐ์ ํ๋ช , ์ฝ๋ฉ๊ต์ก, ์ํํธ์จ์ด๊ต์ก, ์ฝ๋ฉ๊ธฐ์ด, SW์ฝ๋ฉ, ๊ธฐ์ด์ฝ๋ฉ๋ถํฐ ์๋ฐ ํ์ด์ฌ ๋ฑ
tcpschool.com
์ฒ์ ๋ ํ์ ํ๋ฉฐ ๋น๊ต ์ฐ์ฐ์์ ๋ํด ๊ณต๋ถํ ๋ ๋จ์ํ ์กฐ๊ฑด์ ๊ฒ์ฌํ๋ ์ฉ๋๋ก๋ง ์๊ฐํ๋ค. ํ์ง๋ง ๋น๊ต ์ฐ์ฐ์๋ ์์  ๋ฃ์ง๋ ๋ณด์ง๋ ๋ชปํ ๋ช ์  ๋ ผ๋ฆฌ์ ์ํ ๋ ผ๋ฆฌ์  ์ถ๋ก ๊ณผ ์ง๋ฆฌํ์ ๊ธฐ์ธํด ๋ง๋ค์ด์ง ๊ฒ์ด์๋ค.
(์ค๋ฑ ์ํ๋ถํฐ ์ํ์ ํฌ๊ธฐํ ์ ๋ช
ํ ์ํฌ์๋ค.)
๋ ผ๋ฆฌ์  ์ถ๋ก , ๋ ผ๋ฆฌ์ฐ์ฐ์,์ง๋ฆฌํ [์ด์ฐ์ํ]
๋ ผ๋ฆฌ์  ์ถ๋ก ์ด๋ ๊ฒ์ ์๊ธฐ ์ํด์๋ ์ฉ์ด๋ถํฐ ์์์ผ ํ์ง ์๊ฒ ์ด? ์ ์(definition) ์ฉ์ด์ ๋ป์ ๋ช ํํ ํ๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ ๊ฒ *๋ฌด์ ์ ์ ์: ์ ์ํ์ง ์๊ณ ์ฌ์ฉํ ์ ์๋ ์ผ๋ฐ์ ์ธ ์ฉ์ด ๋ฌธ
luv-n-interest.tistory.com
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์ด์ฉํด ๋นํธ ์ฐ์ฐ์ ์ํํ ์ ์๋๋ฐ, ์ ํํ ์๋ฏธ๋ฅผ ํ์ ํ์ง ๋ชปํ์ง๋ง ๊ทธ๋๋ ์ฉ๋์ ๋ํด์๋ ํ์ ํ๊ณ ์์ด์ ์ดํดํ๋๋ฐ ํฐ ์ด๋ ค์์ ์์๋ค.
N๊ณผ M์ ์ด์ง์๊ฐ ์๋ค๊ณ  ๊ฐ์  ํ์ ๋, ๋ ์ด์ง์์ i ๋ฒ์งธ์ ๊ฐ์ด ์๋ก 1์ผ ๊ฒฝ์ฐ์ & ์ฐ์ฐ์๋ 1์ ๋ฐํํ๊ณ , ๋ ์ค ํ๋๋ง 1์ผ ๊ฒฝ์ฐ์ | ์ฐ์ฐ์๋ 1์ ๋ฐํํ๋ค.
์ฆ, & ์ฐ์ฐ์์ ๊ฒฝ์ฐ ๋
ผ๋ฆฌ๊ณฑ์ผ๋ก์ N๊ณผ M์ i ๋ฒ์งธ ๊ฐ์ด ์ฐธ์ด์ด์ผ ๊ฒฐ๊ณผ๋ ์ฐธ์ด๋ค.
๋ฐ๋ฉด | ์ฐ์ฐ์์ ๊ฒฝ์ฐ ๋
ผ๋ฆฌํฉ์ผ๋ก์ N๊ณผ M์ i ๋ฒ์งธ ๊ฐ ๋ชจ๋๊ฐ ๊ฑฐ์ง์ด์ด์ผ ๊ฒฐ๊ณผ๋ ๊ฑฐ์ง์ด ๋๋ค.


์ด์ฒ๋ผ ^ ์ฐ์ฐ์์ ๊ฒฝ์ฐ i ๋ฒ์งธ ๊ฐ์ด ๋ค๋ฅผ ๊ฒฝ์ฐ 1 ์ ๋ฐํํ๊ณ , ~ ์ฐ์ฐ์์ ๊ฒฝ์ฐ N์ i ๋ฒ์งธ ๊ฐ์ด 1์ผ ๋๋ 0์ 0์ผ ๋๋ 1์ ๋ฐํํ๋ค.์ด๋ฅผ ์ดํดํ๋๋ฐ ํฐ ์ด๋ ค์์ ์์์ง๋ง


๋นํธ ์ฐ์ฐ์ ์ดํดํ๋๋ฐ ํฐ ์ด๋ ค์์ ์์์ง๋ง ๋ ผ๋ฆฌ๊ณฑ, ๋ ผ๋ฆฌํฉ ๋ฑ ๋ ผ๋ฆฌ์ ๋ํ ์์ญ์ด ์ดํด๊ฐ ๋์ง ์์๋ค. ์์ ๋งํ ๊ฒ ์ฒ๋ผ ๋์๊ฒ ์ํ์ ๋จ์ ๋๋ผ ์ด์ผ๊ธฐ์ด๊ธฐ ๋๋ฌธ์ ์ต์ํ์ง ์์๋ค.
SW Expert Academy
SW ํ๋ก๊ทธ๋๋ฐ ์ญ๋ ๊ฐํ์ ๋์์ด ๋๋ ๋ค์ํ ํ์ต ์ปจํ ์ธ ๋ฅผ ํ์ธํ์ธ์!
swexpertacademy.com
์ผ์ฑ SW Expert Academy์์ ๋ ผ๋ฆฌ์  ์ฌ๊ณ , Computational Thinking์ ๋ํ ๊ต์ก ์์์ ์ฐธ๊ณ ํด ๋ ผ๋ฆฌ์  ์ถ๋ก ์ ๋ํด ์กฐ๊ธ์ด๋๋ง ๊ณต๋ถํ ์ ์์๋ค.
X์ K
1322๋ฒ: X์ K
์ฒซ์งธ ์ค์ X์ K๊ฐ ์ฃผ์ด์ง๋ค. X์ K๋ 2,000,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
www.acmicpc.net
ํด๋น ๋ฌธ์ ๋ ์์ฐ์ X์ K๊ฐ ์ฃผ์ด์ง๋ฉฐ, X + Y ์ X | Y ๊ฐ ๊ฐ์ ์ ์๋ K ๋ฒ์งธ ์์ฐ์๋ฅผ ์ถ๋ ฅํด์ผ ํ๋ ๋ฌธ์ ์ด๋ค.
๋จผ์  ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ Java์์ ์ ๊ณตํ๋ Math.pow() ๋ฉ์๋๋ฅผ ์์๋๋ฉด ํธํ๋ค.
- Math.pow()
 
X, Y๋ฅผ ์ด์ง์๋ก ๋ณํ ๋ฐ ๋นํธ ์ฐ์ฐ
K = 2 (2 ๋ฒ์งธ Y ๊ฐ์ ๊ตฌํ์ ๋)
X = 5 → 101
Y = 2 → 10
5 + 2 == 101 | 10 → 7 == 111
K = 20 (20 ๋ฒ์งธ Y ๊ฐ์ ๊ตฌํ์ ๋)
X = 5 → 101
Y = 80 → 110000
5 + 80 == 101 | 1010000 → 85 == 1010101
X + Y == X | Y๋ฅผ ์ฐ์ฐ ํ๋ ค๋ฉดX๋ฅผ ์ด์ง์๋ก ๋ณํ ํ์ ๋, 0์ธ ์ธ๋ฑ์ค๊ฐ 1์ธY๊ฐ ์ ์กฐ๊ฑด์ ํด๋นํ๋ค.X๋ฅผ ์ด์ง์๋ก ๋ณํ ํ์ ๋,X์ i ์ธ๋ฑ์ค ๊ฐ($2^n$)๊ฐK๋ณด๋ค ์์ ๊ฒฝ์ฐ๋งํผX์ ์ด์ง์ ๊ฐ์์ 0์ธ ๋ถ๋ถ์ ์ฐพ์์ผ ํ๋ค.- ์ด๋ 
Y๊ฐX๋ณด๋ค ํฐ ๊ฒฝ์ฐ๋ ํฌํจํ๋ค. 
X์์ 0์ธ ์๋ฆฌ๊ฐ 1์ธ ์์ฐ์($2^n$)๋ฅผ ์ฐพ๊ณ , ํด๋น ์์ฐ์์X๋ฅผ ๋นํธ ์ฐ์ฐ์ ํ์ ๋X์ ๊ฐ์ด ๋ค๋ฅด๋ค๋ฉด ์์ฐ์๋ฅผ ๋ฆฌ์คํธ ํน์ ๋ฐฐ์ด์ ์ ์ฅํ๋ค.- ์์ ๋ฆฌ์คํธ ํน์ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ 
m์ด๋ผ๊ณ ๊ฐ์ ํ๊ณ $2^m$์ ๊ฐ์ดK๋ณด๋ค ์์ ๋ ๋งํผ ๋ฐ๋ณตํ์ฌX์ 0์ธ ์๋ฆฟ์๊ฐ 1์ธ ์์ฐ์ ๋ชจ๋๋ฅผ ๋ฆฌ์คํธ ํน์ ์ ์ฅํ๋ค. 
- ์์ ๋ฆฌ์คํธ ํน์ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ 
 m๋งํผ ๋ค์ ๋ฐ๋ณตํ์ฌ ๋ฆฌ์คํธ ํน์ ๋ฐฐ์ด์์ ๊ฐ์ฅ ์์ ์กด์ฌํ๋Y(์ ์ฅ๋ ์์ฐ์)๋ฅผ ๊บผ๋ด์ด ๊ฒฐ๊ณผ๊ฐ 0๊ณผ ๊ณ์ ๋ํ๋ค.- ๋ํ, 
K์ $2^i$๋ฅผ ๋นผ์X + Y == X | Y์กฐ๊ฑด์ ๋ถํฉํ์ง ์๋Y๊ฐ์ ์ ์ธํ๋ค. - ์ด ๋, 
i๋ ๋ฐ๋ณตํ๋ฉฐ ๊ฐ์ํ๋ ์ธ์คํด์ค ๋ณ์i์ด๋ค. 
- ๋ํ, 
 

์ฝ๋
1322. X์ K
๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/1322 - ์์ค ์ฝ๋ - 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48..
algwang.tistory.com
package ์ฌ์ฑํ.์๊ณ ๋ฆฌ์ฆ_5์ฃผ์ฐจ.๋ฐฑ์ค;
import java.io.*;
import java.util.*;
public class X์K_1322 {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    public static void main(String[] args) throws Exception {
        String[] input = br.readLine().split(" ");
        long x = Long.parseLong(input[0]);
        long k = Long.parseLong(input[1]);
        long save = 1;
        long result = 0;
        ArrayList<Long> arr = new ArrayList<Long>();
        while ((long) Math.pow(2, arr.size()) <= k) {
            System.out.print(arr.size() + " ");
            System.out.println(save);
            if ((x | save) != x) {
                arr.add(save);
            }
            save *= 2;
        }
        for (int i = 0; i < arr.size(); i++) {
            System.out.print(arr.get(i) + " ");
        }
        System.out.println();
        for (int i = arr.size() - 1; i >= 0; i--) {
            if (k == 0) {
                break;
            } else {
                if ((long) Math.pow(2, i) <= k) {
                    result += arr.get(i);
                    System.out.println("result = " + result);
                    k -= (long) Math.pow(2, i);
                }
            }
        }
        bw.write(result + "");
        bw.flush();
        bw.close();
    }
}
์ด๋ฒ ๋ฌธ์ ๋ ์ ๋ธ๋ก๊ฑฐ ๋ถ์ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ๋ค.
์์ผ๋ก ์ง์  ํผ๋ค๋ฉด ๋
ธ๊ฐ๋ค๋ก ํด๊ฒฐํ  ์ ์์ ๊ฒ ๊ฐ์๋ฐ, ์ด๊ฑธ ์ฝ๋๋ก ํ์ด ๋๊ฐ๋ ๊ฒ์ด ์ ๋ง ์ด๋ ค์ ๋ค.
๊ฐ์ฅ ์ดํดํ๊ณ  ์ ๊ทผํ๊ธฐ ์ด๋ ค์ ๋ ๋ถ๋ถ์ X + Y ์ X | Y ๊ฐ ๊ฐ๋ค๋ ๊ฑธ ์ด๋ป๊ฒ ์ํ์ ์ผ๋ก ์ฆ๋ช
ํด์ผ ํ ์ง ๊ฐ์ด ์กํ์ง ์์์ ์ดํดํ๋๋ฐ ๊ต์ฅํ ์ค๋ ์๊ฐ์ด ์์๋๋ค.(์ฐธ๊ณ ๋ก ํด๋น ๋ฌธ์ ๋ ๋ฐฑ์ค ๊ณจ๋4 ๋ ๋ฒจ์ด๋ค.)
๊ทธ๋๋ ์ด๋ฒ ๋ฌธ์ ๋ฅผ ํตํด ๋นํธ ์ฐ์ฐ์ ๋ฌด์์ธ์ง, Math.pow() ๋ฉ์๋๊ฐ ์ด๋ค ์ฉ๋์ธ์ง, ์ ์ด๋ ๊ฒ ์ฝ๋๊ฐ ๊ตฌ์ฑ ๋์๋์ง ๊น๊ฒ ์ดํดํ  ์ ์์๋ ์๊ฐ์ด์๋ค.
์์ง ๊ฐ์ผ ํ  ๊ธธ์ด ๋ฉ์ง๋ง ํ๋์ฉ ๋ฐฐ์์ ๋ด ๊ฒ์ด ๋๋ ์ด ๊ณผ์ ์ด ์ฐธ ์ฌ๋ฏธ์๋ค.
์ฌ๋ฏธ์๋ ๋งํผ ์ ํ  ์ ์๋๋ก ๋ ๋
ธ๋ ฅ ํด์ผ๊ฒ ๋ค!
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Cos Pro 1๊ธ | ๋ฌธ์์ด ํฉ์ฑํ๊ธฐ, ์์  ํ์ (0) | 2020.12.10 | 
|---|---|
| Cos Pro 1๊ธ | ๋๋ฅด์์์ฆ ์ (0) | 2020.12.10 | 
| ๋ฐฑ์ค 1158 | Queue, ์์ธํธ์ค ๋ฌธ์  (0) | 2020.11.25 | 
| ๋ฐฑ์ค 10816 | ์ซ์ ์นด๋ 2 (0) | 2020.11.07 | 
| ํ์ | ์์ฐจ ํ์, ์ด์ง ํ์, ๋ถํ ์ฐพ๊ธฐ (0) | 2020.11.07 |