문제풀이/프로그래머스 73

[프로그래머스] - 카드 뭉치(파이썬)

def solution(c1, c2, goal): answer = "Yes" p1 = p2 = 0 for i in range(len(goal)): if goal[i] in c1 and goal[i] == c1[p1]: p1 += 1 elif goal[i] in c2 and goal[i] == c2[p2]: p2 += 1 else: answer = "No" return answer 각각의 포인터를 주고 카드1에 없으면 카드2를 살펴보도록 한다. 이때 포인터에 다음 값에 있더라도 이는 먼저 사용할 수 없기 때문에 자동으로 else문에서 no로 판명나게 된다.

[프로그래머스] - 연속된 부분 수열의 합

def solution(sequence, k): answer = [] start, end = 0,0 num = sequence[0] min_len = 2147483647 while start end - start + 1: min_len = end - start + 1 answer = [start, end] num -= sequence[start] start += 1 elif num > k: num -= sequence[start] start += 1 elif num < k: end+=1 if end < len(sequence): num += sequence[end] return answer 이 문제의 핵심은 이미 더해줬던 부분을 계속해서 더하는 것이 아니고 양 끝값을 더하고 빼는 식으로 진행해서 시간 초..

[프로그래머스] - 달리기 경주 (파이썬/자바)

def solution(players, callings): answer = [] index_player = {} player_index ={} for idx, val in enumerate(players, 1): index_player[idx]=val for idx, val in enumerate(players, 1): player_index[val]=idx for c in callings: current_player = c current_idx = player_index[c] before_idx = current_idx-1 before_player = index_player[before_idx] player_index[current_player], player_index[before_player] = ..

[프로그래머스] - 성격 유형 검사하기

python def solution(survey, choices): answer = '' dic= {"R" : 0,"T" : 0,"C" : 0,"F" : 0,"J" : 0,"M" : 0,"A" : 0,"N" : 0 } #4의 경우엔 점수 부여하지 않으니까 4를 기준으로 나눠주면 된다. for s,c in zip(survey, choices): if c > 4: dic[s[1]] += c-4 elif c < 4: dic[s[0]] += 4-c li = list(dic.items()) for i in range(0,8,2): if li[i][1] < li[i+1][1]: answer += li[i+1][0] else: answer += li[i][0] return answer 해당 딕셔너리를 list로 다시..

[프로그래머스][조합] - 메뉴 리뉴얼

from itertools import combinations from collections import Counter def solution(orders, course): answer = [] for c in course: tmp = [] for order in orders: combi = combinations(sorted(order),c) tmp += combi cnt = Counter(tmp) #해당 메뉴가 없거나 해당 메뉴를 1명만 주문한 것이 아니라면 if len(cnt) != 0 and max(cnt.values())!=1: #해당 메뉴가 최대로 주문받은 경우에만 돌려줌 answer += [''.join(f) for f in cnt if cnt[f]==max(cnt.values())] ret..