Programmers Code/Level 1

[Programmers] level1 - 신고 결과 받기 (Python) : 2022 KAKAO BLIND RECRUITMENT (level 1)

NIMHO 2022. 6. 12. 14:57
728x90

▶신고 결과 받기 - 2022 KAKAO BLIND RECRUITMENT (level 1)

풀이

신고 당한 횟수가 k번 이상이면 신고한 사람이 몇번이나 신고 성공했는지 출력해주면 된다.
그에 맞는 dictionary를 생성해서 id값들을 넣어준다.

result는 사람들이 몇번이나 신고 당했는지 체크해주는 dictionary이고,
신고 횟수를 1씩올려주면 된다.

마지막 for문에선 그 값에 해당하는 key값을 가지고
answer의 값을 1씩 올려주면 된다.

사실 이 문제를 글쓰는 날 푼 문제가 아니라 한참 전에 푼 문제이다.
그래서 설명 자체가 너무 별로일 수도 있다.ㅠㅠ
다음에 다시 풀어보고 설명을 제대로 적어야겠다.

def solution(id_list, report, k):
    answer = [0] * len(id_list)
    dp = {id: [] for id in id_list}
    result = {}
    
    for i in range(len(id_list)):
        result[id_list[i]] = 0
    for re in set(report):
        a, b = re.split(' ')
        dp[a].append(b)
    
    for key, value in dp.items():
        for v in value:
            result[v] += 1
    for key, value in dp.items():
        for v in value:
            if result[v] >= k:
                answer[id_list.index(key)] += 1

    return answer


이 문제 역시 효율성 검사는 없었다.
정확성 테스트만 만점 맞으면 통과가 되는 문제이다
테스트3을 보니까 1228ms가 걸렸다. 아마 효율성 테스트도 있었다면
나는 통과하지 못했을거다...

728x90