설모의 기록

[codeground 연습문제 1] 숫자 골라내기 본문

알고리즘

[codeground 연습문제 1] 숫자 골라내기

HA_Kwon 2018. 4. 10. 17:59

 이 문제는 주어진 숫자중에서 홀수번 나타나는 숫자들의 XOR 연산결과를 출력하라는 문제입니다. 

저도 풀다가 함정에 빠져서 배열을 만들고, 배열의 인덱스를 숫자라 생각하고 숫자가 나타나는 횟수를 배열에 저장하는 식으로 풀려고 했더니 메모리를 초과했다는 런타임 에러가 발생했습니다. '대체 배열을 안 쓰고 이걸 어떻게 풀지..?' 라는 생각에 빠져있었는데 이게 바로 XOR 연산의 함정입니다. 



기본적으로 XOR 연산은 두 수 a, b가 다르면 0이 됩니다. 따라서 b^b를 하면 자동으로 상쇄되기 때문에 홀수인지 짝수인지 나타난 횟수를 신경쓰지 않고 XOR연산에 모두 추가하면 되는 간단한 문제였습니다. XOR 연산의 기본 개념만 알고 있었어도 빠르게 풀고 넘길 문제였습니다T^T


Comments