Informatica Online Judge

  그레이 코드 [2291 / 08F3]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 44   Total Tried : 10


The Champion of this Problem (C++) : gs17105 - 0ms / 538byte
My Best Submission (C++) : N/A

[JH Kim 2018]

Background

그레이코드(Gray code)는 이진법 부호의 일종으로, 연속된 수가 1개의 비트만 다른 특징을 보여준다. 일반적으로 입출력장치, A/D 변환기에서 사용되나 연산사용에는 부적합하다.

그레이코드($B_{1}, B_{2}, B_{3}, B_{4}$)를 만드는 방법은 다음과 같다.

- 2진수의 최상위 비트 ($B_{1}$)는 그대로 내린다.
- 두 번째 비트로부터 자신과 그 앞자리에 놓인 비트를 $XOR$한다.
- $XOR$은 서로 다른 비트는 1, 그렇지 않으면 0이 되는 연산이다.

다음은 4비트의 Binary code와 Gray code를 나타낸다.



입력된 그레이코드에 해당하는 10진수를 출력하는 프로그램을 작성하시오.

Input

그레이코드 문자열이 입력된다.

[입력값의 정의역]
$1≤문자열길이≤31$

Output

입력된 그레이코드에 해당하는 10진수를 출력한다.

IO Example

입력1
1111

출력1
10

입력2
1010101010

출력2
819

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]