Curriculum/AI웹개발자_내일배움캠프

Story 16. TIL

작은코딩 2022. 3. 9. 21:42

오늘부터 알고리즘 문제를 하루에 하나씩 풀기로 했다!!

팀원분들은 꾸준히 하는 거 같아서 나만 뒤쳐진 느낌 아닌 느낌 🤔


👀 오늘 한 일

  • 알고리즘 한문제 풀기
  • 프로젝트 DB 가설계
  • 데이터 크롤링

 

📚 오늘 배운 것

  • 장고 사용시 user 모델 커스터마이징 방법
  • csv 파일 저장할 때 한글 저장 오류 euc-kr 인코딩으로 해결

 

😄 오늘의 TMI

level1 알고리즘 문제를 푸는데 1시간이 걸렸다,, 거기에 코드까지 너무 길어 ㅠㅠ

문제를 풀고나면 가장 많은 좋아요를 받은 정답이랑 내 정답은 왜 이렇게 괴리가 큰지,, 

 

 

 


알고리즘 문제

https://pogrammers.co.kr/learn/courses/30/lessons/92334?language=python3 

 

코딩테스트 연습 - 신고 결과 받기

문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의

programmers.co.kr

내 정답

# 각 유저는 한명의 유저를 신고 여러번 신고해도 1회 처리
# k번 이상 신고된 유저는 이용 정지 - 신고한 유저에게 메일 발송
def solution(id_list, report, k):
    report_dict = {}

    id_dict = {}
    for id in id_list:
        id_dict[id] = 0


    for i in report:
        result = i.split(' ')
        try:
            report_list = report_dict[result[1]]
            # 해당 유저를 신고한 유저 목록에 현재 신고 접수한 유저가 있으면 pass
            if result[0] not in report_list:
                report_list.append(result[0])
                report_dict[result[1]] = report_list
            else:
                # print(f'{result[0]}는 이미 {result[1]}를 신고했습니다.')
                pass

        except KeyError:
            report_dict[result[1]] = [result[0]]


    for key, value in report_dict.items():
        if len(value) >= k:
            for v in value:
                id_dict[v] += 1

    return list(id_dict.values())

'Curriculum > AI웹개발자_내일배움캠프' 카테고리의 다른 글

Story 18. TIL  (0) 2022.03.11
Story 17. TIL  (0) 2022.03.11
Story 15. TIL  (0) 2022.03.09
Story 14. TIL  (0) 2022.03.07
Story 13. WIL(12주차)  (1) 2022.03.06