코딩테스트

[코딩테스트] 프로그래머스 카카오 코딩테스트 기출 복기3

pythaac 2022. 3. 12. 02:03

1. 오픈채팅방(*)

https://programmers.co.kr/learn/courses/30/lessons/42888

 

코딩테스트 연습 - 오픈채팅방

오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오

programmers.co.kr

  • 예전 코드가 더 잘짰다
    • 다시 짤 땐 record를 탐색하여 (id, Enter/Leave)를 따로 저장했음
    • 물론 Change를 생략할 순 있지만, 그냥 다시 record를 탐색하는 것이 더 깔끔한 것 같음
    • print(f"nick_table[id]님이 들어왔습니다.") 이런 식으로 print(nick_table[id] + "님이 들어왔습니다")를 간략화할 수 있음

 

2. 자물쇠와 열쇠(**)

https://programmers.co.kr/learn/courses/30/lessons/60059

 

코딩테스트 연습 - 자물쇠와 열쇠

[[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true

programmers.co.kr

  • 인덱스 계산 잘하기
    • N에 M-1만큼 더해졌으니 M-1+N만큼

 

3. 실패율 (**)

https://programmers.co.kr/learn/courses/30/lessons/42889

 

코딩테스트 연습 - 실패율

실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스

programmers.co.kr

  • 이전과 다르게 풀었음
    • 이전에는 Counter로 각 스테이지의 사람의 수를 구하는 방식
      • 전체 도전자 수를 처음에 저장하고, 각 스테이지 탐색마다 빼줌
    • 새로 푼 방식은 bisect_right로 몇명이 도달 못했는지 구하는 방식
      • bisect_right만큼 stages를 slice하면서 len(stages)가 전체 도전자 수를 유지
    • 전체 도전자 수 때문에 이번에 푼 방법이 더 깔끔한 것 같음
    • 하지만 인원수를 "세어봐야한다"라는 문제접근에서 Counter를 떠올리지 못한 것이 아쉬움

 

4. 후보키

https://programmers.co.kr/learn/courses/30/lessons/42890

 

코딩테스트 연습 - 후보키

[["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2

programmers.co.kr

  • issubset
    • set끼리는 포함관계 확인 가능