리그캣의 개발놀이터

[CodeGround] 숫자 골라내기 - python 본문

알고리즘/코드그라운드

[CodeGround] 숫자 골라내기 - python

리그캣 2019. 4. 29. 22:07

초등학교교 학생인 정우와 석환이는 최근 학교에서 두 이진수의 XORXOR 연산에 대해 배웠다.
 둘은 매우 영특한 학생이라 새로 배운 연산을 갖고 이리저리 장난치기 시작했다.
 다만 석환이는 정우에게 일을 시키는 것을 좋아하는지라 다음과 같은 제안을 했다.

“내가 NN개의 10진수를 주면, 등장하는 숫자들 중 홀수번만 나타나는 숫자들을 모두 XORXOR한 결과를 구해줘.”

예를 들어 '2, 5, 3, 3' 이 주어질 경우, '2'와'5'는 1번(홀수 번) 나타나고 '3' 은 2번 (짝수 번) 나타나므로
홀수 번 나타난 '2' 와 '5'를 XORXOR 한 결과를 구해야 하고,
'2, 5, 3, 3, 2, 4, 5, 3' 이 주어질 경우 '2' 와 '5' 는 2번 나타나고, '3' 은 3번, '4' 는 1번 나타나므로
홀수 번 나타난 '3' 과 '4'를 XORXOR 한 결과를 구해야 한다.

정우는 제안을 수락했지만, 가면 갈수록 매번 XORXOR 연산을 수행하는 일에 지치고 있다.
정우를 도와서 주어 진 문제를 해결하는 프로그램을 작성하라.

 

해당 문제는 같은 숫자를 xor 짝수번하면 원래의 숫자에 영향을 주지않는다는 개념만 알면된다.

결국 모든 수를 xor하라는 문제

 

 

 

n_list = [2, 5, 3, 3]

value = n_list[0]
for n in range(1,len(n_list)):
value=value^n_list[n]

print(value)

 

 

Comments