코딩테스트
-
[프로그래머스] 두 개 뽑아서 더하기 (Python)코딩테스트 2021. 3. 27. 01:55
import itertools def solution(numbers): answer = [] temp = [] temp = itertools.combinations(range(len(numbers)), 2) for i in temp: answer.append(numbers[i[0]] + numbers[i[1]]) answer = sorted(list(set(answer))) return answer itertools의 조합 함수 combinations를 사용해 인덱스를 2개 뽑고, 뽑은 인덱스를 사용해 각 값을 더한 수들을 answer 리스트에 append한 후 중복 제거를 위해 set을 이용한다. 오름차순 정렬이니 sorted를 사용해 정렬한다.
-
[프로그래머스] 2016년 (Python)코딩테스트 2021. 3. 27. 01:18
시도 1 def solution(a, b): answer = '' month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] days = ["SUN","MON","TUE","WED","THU","FRI","SAT"] start_days = ["FRI", "MON", "TUE", "FRI", "SUN", "WED", "FRI", "MON", "THU", "SAT", "TUE", "THU"] n = b % 7 start_day = days.index(start_days[a - 1]) index = start_day + (n - 1) if index >= 7: index = index - 7 answer = days[index] return answer 단순 캘린더를..
-
[프로그래머스] 문자열 내 p와 y의 개수 (Python)코딩테스트 2021. 3. 25. 22:08
def solution(s): answer = True str = s.lower() p = str.count('p') y = str.count('y') if p != y: answer = False return answer answer을 True로 초기화한 후, lower()을 통해 모두 소문자로 바꾼다. count() 함수를 통해 p와 y의 개수를 찾고, True일 경우는 p == 0 and y == 0일 때, 그리고 두 개의 값이 같을 경우이므로 그 값이 다를 때만 체크를 한 번만 해 False로 바꿔준 후 리턴한다.
-
[프로그래머스] 1878 - 나머지 한 점(Python)코딩테스트 2021. 3. 6. 01:12
제출 코드 def solution(v): # x 좌표가 들어 있는 리스트 x = [] # y 좌표가 들어 있는 리스트 y = [] # 입력된 이중 리스트 순회 for i in v: # x는 x리스트에, y는 y리스트에 append x.append(i[0]) y.append(i[1]) # 만일 x리스트에 해당 x값이 두 개 있다면 # 집합으로 중복값을 지우고, 리스트로 만든 후, 해당 값 삭제 if x.count(i[0]) == 2: x = list(set(x)) x.remove(i[0]) # 만일 y리스트에 해당 y값이 두 개 있다면 # 집합으로 중복값을 지우고, 리스트로 만든 후, 해당 값 삭제 if y.count(i[1]) == 2: y = list(set(y)) y.remove(i[1]) # x리스..
-
[백준] 2798 - 블랙잭 (Python)코딩테스트 2021. 3. 5. 15:39
제출 코드 from itertools import combinations n, m = list(map(int, input().split())) card_num = list(map(int, input().split())) # 카드의 순열을 구한다. card_cases = list(combinations(card_num, 3)) # 각 케이스마다의 합을 저장한다. summary = [] # 각 카드의 순열의 합이 m보다 크면 다음 카드 순열을 불러오고, # 작거나 같다면 합의 배열에 추가한다. for case in card_cases: if sum(case) > m: continue else: summary.append(sum(case)) # 각 합의 제일 큰 값을 리턴한다. print(max(summary..