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
'운동하는 개발자 > 알고리즘, 코딩테스트' 카테고리의 다른 글
HackerRank [Search] Hackerland Radio Transmitters /알고리즘 해커랭크 (0) | 2021.02.23 |
---|---|
HackerRank [Graph Theory] Roads and Libraries /알고리즘 해커랭크 (0) | 2021.02.17 |
HackerRank [Constructive Algorithms] Flipping the Matrix /알고리즘 해커랭크 (0) | 2021.02.16 |
HackerRank [Bit Manipulation] Counter game /알고리즘 해커랭크 (0) | 2021.02.09 |
HackerRank [Recursion] The Power Sum /알고리즘 해커랭크 (0) | 2021.02.08 |