백준 1946: 신입사원 Silver I 문제링크 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 나의 접근 입력받는 서류 순위 점수, 면접 점수에 대해서 서류 순위 점수를 기준으로 오름차순으로 정렬한다. 정렬된 점수 배열에 대해서 탐색을 진행한다. 서류 순위 점수가 높은 -> 낮은 순서대로 탐색을 진행하며 면접 순위에 대해서도 최솟값을 비교해준다. 면접자의 면접 순위가 그 전에 저장된 가장 높은 순위보다 더 높을 시, minrecord를 재설정해주고 count를 늘려준다. import ..
프로그래머스: 전화번호 목록 Level 2 문제링크 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 나의 접근 접근1: 큐로 풀었다가 시간 초과 에러 및 테스트케이스 3개를 통과시키지 못했다. def solution(phone_book): count = len(phone_book) while count > 0: num = phone_book.pop(0) for i in range(len(phone_book)): if num in phone_book[i]: return False phone_book.appe..
프로그래머스: 위장 Level2 문제링크 코딩테스트 연습 - 위장 programmers.co.kr 나의 접근 딕셔너리에 각 key가 등장할 때 마다 값을 increment 해준다. 일반 딕셔너리로는 key가 존재하지 않는 경우에 대해 새로운 key를 추가해주고, 존재하는 경우에 대해 +1 시켜줘야한다. Defaultdict를 사용하면 이러한 예외처리를 해주지 않아도 된다. 딕셔너리에서 각 key의 count수에 대한 경우의 수를 곱해준다. 전체 count에서 아무것도 안입은 경우 하나를 빼준다. from collections import defaultdict #1 def solution(clothes): wardrobe = defaultdict(int) for i in clothes: key = i[1]..