본문 바로가기

코딩테스트

무작위로 K개의 수 뽑기 level 0

 

def solution(arr, k):
    answer = []
    count = 0
    for i in range(len(arr)):
        if i == 0:
            answer.append(arr[i])
        if answer[count] == arr[i]:
            continue
        else:
            answer.append(arr[i])
            count += 1
        if(len(answer) == k):
            break
    while len(result) < k:
        result.append(-1)
    return answer

answer[count] == arr[i]를 비교하는 과정에서 count값이 정확하게 비교되지 않아 오류가 났다.

따라서 set를 만들어서 모든값들을 비교하여고 코드를 다시 작성하였다.

def solution(arr, k):
    used = set()
    result = []
    for num in arr:
        if num not in used:
            result.append(num)
            used.add(num)
        if len(result) >= k:
            break
    while len(result) < k:
        result.append(-1)
    
    return result

 

이렇게 set을 만들어서 값들은 전부 set에 저장한뒤,값들을 비교해주면 모든 값들을 빠짐없이 비교할수있다