[프로그래머스] 달리기 경주
·
Algorithm
문제 틀렸던 풀이def solution(players, callings): for p in callings : rank = players.index(p) #이름 불린 player의 앞 순위와 swap players[rank], players[rank-1] = players[rank-1], players[rank] return players 테스트 케이스를 통과해서 가능할 줄 알았는데, 히든 테스트 케이스에서 시간초과로 인해서 실패했다. 어떤 문제가 있었을까 ? -> players의 길이가 최대 50000이고, callings의 길이가 최대 100000이라서 값을 index로 찾는 과정에서 시간 초과가 난 것 같다. 풀이순위 인덱스를 찾는 시간..
[프로그래머스] 개인정보 수집 유효기간
·
Algorithm
문제 풀이from collections import defaultdictdef solution(today, terms, privacies): #약관 별 유효기간을 담을 dict terms_dict = defaultdict(int) today = int(today.replace('.', '')) res = [] #terms_dict for term in terms : #'A 3' 이런 순서로 저장되어있으므로 split하여 dict로 저장 t, month = term.split() terms_dict[t] = int(month) #고객 리스트를 반복하며 비교 for i, privacy in enumerate..
[프로그래머스] [PCCE 기출문제] 10번 / 데이터 분석
·
Algorithm
문제 풀이 문제가 복잡하다고 생각했는데, 하나씩 차근차근 나눠서 생각해보니 쉬운 문제였다.생각했던 로직 : -> ext가 있는 요소를 찾음 -> 찾은 요소의 값이 val_ext보다 작으면 res에 append -> res를 sort_by를 기준으로 sort def solution(data, ext, val_ext, sort_by): #데이터의 column 순서 리스트 정의(index find 용) data_rows = ['code', 'date', 'maximum', 'remain'] res = [] for row in data : #데이터의 행을 순회 #데이터의 ext 값이 val_ext값보다 작으면 if row[data_rows.index(ext)] 1. 각 행을..
[프로그래머스] 로또의 최고 순위와 최저 순위
·
Algorithm
문제 풀이#로또 등수 계산 함수 정의def lotto_count(cnt) : if cnt == 6 : return 1 elif cnt == 5 : return 2 elif cnt == 4 : return 3 elif cnt == 3 : return 4 elif cnt == 2 : return 5 else : return 6def solution(lottos, win_nums): #최저 count, 최대 count 정의 worst = 0 best = 0 res = [] for num in lottos : #번호가 당첨번호와 같을때(최저 count, 최대 co..
[프로그래머스] 성격 유형 검사하기
·
Algorithm
문제 틀렸던 풀이def solution(survey, choices): #성격 유형 검사 알파벳 딕셔너리 생성 mbti = {'R' : 0, 'T' : 0, 'C' : 0, 'F' : 0, 'J' : 0, 'M' : 0, 'A' : 0, 'N' : 0} res = '' #딕셔너리에 해당 문자에 맞는 점수 부여 for i in range(len(survey)) : if choices[i] > 4 : #뒤의 문자에 점수 부여 mbti[survey[i][1]] += choices[i] - 4 elif choices[i] = mbti['T'] : res += 'R' else : res += 'T' ..
[프로그래머스] 햄버거 만들기
·
Algorithm
문제 풀이 def solution(ingredient): hamburger = [] #햄버거 샘플 생성 success = [1, 2, 3, 1] cnt = 0 for i in ingredient : hamburger.append(i) # 쌓인 재료로 햄버거가 만들어졌을 때 if hamburger[-4:] == success : cnt += 1 #햄버거 pop for j in range(4): hamburger.pop() return cnt 풀이 설명1. 재료들을 추가할 리스트 생성(hamburger)2. 햄버거의 샘플 리스트 생성(s..