본문 바로가기

운동하는 개발자/알고리즘, 코딩테스트

HackerRank [Bit Manipulation]Lonely Integer /알고리즘 해커랭크

728x90

문제주소 : www.hackerrank.com/challenges/lonely-integer/problem

 

문제 : 주어진 int array에서 같은 수의 값을 한쌍씩 제외시킨 후 홀로남는 값을 리턴하라

 

풀이

1. 같은 값을 한쌍씩 없애는 가장 쉬운방법은 모든값을 누적으로 xor시켜버리면 된다

 

답안

#!/bin/python3

import math
import os
import random
import re
import sys

    

def lonelyinteger(a):
    result = 0

    for i in a:
        result = result ^ i
    return result
    

if __name__ == '__main__':
    # fptr = open(os.environ['OUTPUT_PATH'], 'w')
    fptr = sys.stdout

    n = int(input())

    a = list(map(int, input().rstrip().split()))

    result = lonelyinteger(a)

    fptr.write(str(result) + '\n')

    fptr.close()

 

느낀점

더보기

처음엔 문제의 탭을 안읽고 풀다보니 sort하여 현재와 다음인덱스의 값이 같으면 지워 버리는 방법을 사용하려 했다 array를 두개씩 지우다보니 exception나는 부분도 발생하고 코드도 깔끔하지 못했다
상당히 쉬운문제이지만 bit연산을 여기에 응용 할 수 있다는걸 인지해야 쉬운문제라는점이 흥미로웠다

728x90