https://www.acmicpc.net/problem/2998
์ฝ๋
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.next(); // 2์ง์(100์๋ฆฌ ์ด๋ด)
String result = ""; // 8์ง์
while(str.length()%3 != 0) {
str = "0" + str;
}
for(int i=0; i<str.length()-1; i+=3) {
/*
* 2์ง์ 1 1 0 ์ ๊ฒฝ์ฐ
* 8์ง์ (1*4) + (1*2) + (0*1) ๋ก ๋ํ๋.
*/
int a1 = str.charAt(i) - '0';
int a2 = str.charAt(i+1) - '0';
int a3 = str.charAt(i+2) - '0';
result += Integer.toString((a1*4) + (a2*2) + (a3*1));
}
System.out.println(result);
scan.close();
}
}
ํ์ด
๋ฌธ์ ์กฐ๊ฑด 2์ง์ -> 8์ง์๋ก ๋ณํ.
1. 2์ง์์ ๊ธธ์ด๊ฐ 3์ผ๋ก ๋๋์ด ๋จ์ด์ง ๋ ๊น์ง ์์ ์์ 0์ ๋ถ์ธ๋ค.
2. ๊ทธ ๋ค์, 3์๋ฆฌ์ฉ ๊ทธ๋ฃน์ ๋๋๋ค.
3. ํ๋ฅผ ์ฐธ๊ณ ํด 8์ง์๋ก ๋ฐ๊พผ๋ค.
๋๋ 1๋ฒ ๋ณด๊ธฐ๊ฐ ๋ฌด์จ ๋ป์ธ์ง ์ดํด๊ฐ ์๋ผ์ ๊ณ์๋ดค๋ค.
๊ทผ๋ฐ ๊ทธ๋ฅ ๊ทธ๋๋ก๋ค.. 2์ง์์ ๊ฐฏ์(๊ธธ์ด)๋ฅผ 3์ ๋ฐฐ์๋ก ๋ง์ถ๊ณ , 3์๋ฆฌ์ฉ ๋์ด์ ๊ณ์ฐํด์ฃผ๋ฉด ๋๋ค.
2์ง์ = 1 1 0 1 ์ด๋ผ๋ ์๊ฐ ์์ผ๋ฉด, 3์ ๋ฐฐ์๊ฐ ๋ ๋๊น์ง 0์ ๋ฃ์ด์ค๋ค
0 0 1 1 0 1
3์ ๋ฐฐ์๊ฐ ๋๋ฉด 3์๋ฆฌ์ฉ ๋๋๋ค.
0 0 1 1 0 1
4 2 1 4 2 1
๊ทธ ํ ๊ฐ ์๋ฆฌ๋ณ๋ก ๊ณ์ฐํ๋ค.
(0*4) + (0*2) + (1*1) | (1*4) + (0*2) + (1*1)
์ต์ข ์ ์ผ๋ก 8์ง์ = 1 5 ๊ฐ ๋๋ค.
* ์ต๋ 100์๋ฆฌ ์ด๋ฏ๋ก String์ผ๋ก ์ ๋ ฅ๋ฐ์์ผ ํ๋ค.
* int <-> String ํ๋ณํ๋ง ์ ์ํ๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 4949๋ฒ: ๊ท ํ์กํ ์ธ์(์คํ, ๋ฌธ์์ด) (0) | 2020.03.27 |
---|---|
[๋ฐฑ์ค] 5555๋ฒ: ๋ฐ์ง(๋ฌธ์์ด) (0) | 2020.03.27 |
[๋ฐฑ์ค] 9933๋ฒ: ๋ฏผ๊ท ์ด์ ๋น๋ฐ๋ฒํธ(๋ฌธ์์ด) (0) | 2020.03.27 |
[๋ฐฑ์ค] 5567๋ฒ: ๊ฒฐํผ์(๊ทธ๋ํ, ๊ตฌํ) (0) | 2020.03.26 |
[Codeforces] 1167A: Telephone Number (0) | 2020.03.26 |
๋๊ธ