https://www.acmicpc.net/problem/12782
๋ฌธ์
์งํ์ด๋ ์ซ์๋ฅผ ์ข์ํ๋ค. ์ค๋๋ ์ซ์๋ฅผ ๊ฐ์ง๊ณ ๋๋ ์งํ์ด๋ ๋ ์ซ์์ ๋นํธ ์ฐ์ ์ง์๋ฅผ ๊ตฌํด๋ณด์๋ค. ๋นํธ ์ฐ์ ์ง์๋, 10์ง๋ฒ์ผ๋ก ๋ํ๋ธ ๋ ์ ์๋ฅผ ์ด์ง์๋ก ๋ํ๋ด์์ ๋, ๋ ์ซ์๋ฅผ ๊ฐ๊ฒ ๋ง๋๋๋ฐ ํ์ํ ์ต์ ์ฐ์ฐ ํ์๋ฅผ ๋งํ๋ค. ์ฐ์ฐ์ ์ข ๋ฅ๋ ๋ค์๊ณผ ๊ฐ๋ค.
- ํ๋์ ์ด์ง์์์ ์์์ ์๋ฆฌ์ ์ซ์๋ฅผ 0 ๋๋ 1๋ก ๋ฐ๊พผ๋ค.
- ํ๋์ ์ด์ง์์์ ์๋ก ๋ค๋ฅธ ์๋ฆฌ์ ์๋ ๋ ์ซ์์ ์์น๋ฅผ ๋ฐ๊พผ๋ค.
์๋ฅผ ๋ค์ด, 10์ง์ 11๊ณผ 12์ ๋นํธ ์ฐ์ ์ง์๋ฅผ ๊ตฌํด๋ณด์. 11์ ์ด์ง์๋ก ๋ํ๋ด๋ฉด 1011์ด๊ณ , 12๋ฅผ ์ด์ง์๋ก ๋ํ๋ด๋ฉด 1100์ด๋ค. 1011์์ 2์ ์๋ฆฌ๋ฅผ 0์ผ๋ก ๋ฐ๊พธ๊ณ (1011 -> 1001), 1์ ์๋ฆฌ์ 4์ ์๋ฆฌ์ ์ซ์๋ฅผ ์๋ก ๋ฐ๊พธ๋ฉด(1001 -> 1100) 1100์ด ๋๋ค. ์ฆ, 1011์ 1100์ผ๋ก ๋ฐ๊พธ๋ ์ต์ ์ฐ์ฐ ํ์๋ ๋ ๋ฒ์ผ๋ก, 11๊ณผ 12์ ๋นํธ ์ฐ์ ์ง์๋ 2๊ฐ ๋๋ค.
์งํ์ด๋ ์ด๋ค ๋ ์๊ฐ ์ฃผ์ด์ก์ ๋ ๋ ์์ ๋นํธ ์ฐ์ ์ง์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ณ ์ถ๋ค. ํ์ง๋ง, ์์ฝ๊ฒ๋ ์งํ์ด๋ ํ๋ก๊ทธ๋๋ฐ์ ์ฝํด 10์ง์๋ฅผ ์ด์ง์๋ก ๋ฐ๊พธ๋ ๊ฒ ๋ฐ์ ํ์ง ๋ชปํ๋ค. ์ฌ๋ฌ๋ถ์ด ์งํ์ด๋ฅผ ๋์ ๋ ์์ ๋นํธ ์ฐ์ ์ง์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด ์ฃผ์!
์ ๋ ฅ
์ ๋ ฅ์ ์ฒซ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T(1 ≤ T ≤ 50)๊ฐ ์ฃผ์ด์ง๋ค.
๊ฐ ํ ์คํธ์ผ์ด์ค์ ์ฒซ ๋ฒ์งธ ์ค์๋ ๋ ์ด์ง์ N, M์ด ์ฃผ์ด์ง๋ค. N, M์ ์๋ฆฟ์๋ 1,000,000์ ๋์ง ์์ผ๋ฉฐ, ์๋ฆฟ์๋ ์๋ก ๊ฐ๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ๋ ์์ ๋นํธ ์ฐ์ ์ง์๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
bit_1 | 1 | 0 | 1 | 1 |
bit_2 | 1 | 1 | 0 | 0 |
๋ ์์ ๊ฐ ๋นํธ๋ค์ ๋น๊ตํ๋ฉด์ ๋ค๋ฅผ ๋, bit_1์ 1์ ๊ฐฏ์(cntOne)์ 0์ ๊ฐฏ์(cntZero)๋ฅผ ๋ฐ๋ก ์ ์ฅํ๋ค. cntOne๊ณผ cntZero ์ค ๋ ์์ ๊ฐ ๋งํผ ๊ตํํด์ฃผ๊ณ ๋๋จธ์ง๋ ๋ฐ๋๊ฐ์ผ๋ก ๋ฐ๊พธ์ด์ฃผ๋ฉด ๊ฐ๋จํ๊ฒ ๊ฐ์ ์ฐพ์ ์ ์๋ค.
์ ์์์์๋ cntOne์ 2, cntZero๋ 1์ด๋ค. ๋ ์์ ๊ฐ์ 1์ด๋ฏ๋ก 1๋ฒ 1๊ณผ 0์ ๊ตํํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ cntOne - cntZero ๋ฒ 1์ 0์ผ๋ก ๋ฐ๊พธ์ด ์ฃผ์๋ค.
์ฝ๋
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main_BOJ_12782_๋นํธ์ฐ์ ์ง์ { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); StringTokenizer stringTokenizer; int testCase = Integer.parseInt(br.readLine()); while(testCase-- > 0){ stringTokenizer = new StringTokenizer(br.readLine()); char[] bit1 = stringTokenizer.nextToken().toCharArray(); char[] bit2 = stringTokenizer.nextToken().toCharArray(); int cntOne = 0; int cntZero = 0; for(int i = 0; i < bit1.length; i++){ if(bit1[i] != bit2[i]){ if(bit1[i] == '1') cntOne++; else cntZero++; } } if(cntZero < cntOne){ sb.append(cntZero + (cntOne - cntZero)).append("\n"); } else if(cntOne < cntZero){ sb.append(cntOne + (cntZero - cntOne)).append("\n"); } else{ sb.append(cntOne).append("\n"); } } System.out.print(sb); } }
'์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค / BOJ 18427] ํจ๊ป ๋ธ๋ก ์๊ธฐ (0) | 2021.09.14 |
---|---|
[๋ฐฑ์ค / BOJ 2109] ์ํ๊ฐ์ฐ (0) | 2021.09.14 |
[๋ฐฑ์ค / BOJ 2026] ์ํ (0) | 2021.09.14 |
[๋ฐฑ์ค / BOJ 20056] ๋ง๋ฒ์ฌ ์์ด์ ํ์ด์ด๋ณผ (0) | 2021.09.14 |
[๋ฐฑ์ค / BOJ 17069] ํ์ดํ ์ฎ๊ธฐ๊ธฐ 2 (0) | 2021.09.14 |