프로그래밍/알고리즘
-
이상한 문자 만들기프로그래밍/알고리즘 2021. 4. 2. 16:46
나의 풀이 def solution(s): words = s.split(' ') answer = [] for word in words: strings = '' for i in range(len(word)): if i % 2 != 0: lower = word[i].lower() strings += lower else: upper = word[i].upper() strings += upper answer.append(strings) return ' '.join(answer) 다른 사람 풀이 def toWeirdCase(s): return " ".join(map(lambda x: "".join([a.lower() if i % 2 else a.upper() for i, a in enumerate(x)]), s.s..
-
나누어 떨어지는 숫자배열프로그래밍/알고리즘 2021. 4. 2. 13:18
나의 풀이 def solution(arr, divisor): answer = [] for number in arr: if number % divisor == 0: answer.append(number) if len(answer) == 0: answer.append(-1) return sorted(answer) 다른 사람 풀이 def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1] or로 -1을 반환한게 아주 마음에 든다. 난 괜히 길이 조건문을 썼는데....
-
프린터프로그래밍/알고리즘 2021. 3. 30. 16:52
풀이 from collections import deque def solution(priorities, location): answer = 0 d = deque([(v, i) for i, v in enumerate(priorities)]) # d에다가 값 인덱스 순으로 deque을 사용해 만든다. while len(d): item = d.popleft() # 0번째 값, 인덱스가 item으로 튜플형으로 넘어간다. if d and max(d)[0] > item[0]: # 만약 d의 밸류보다 item의 밸류가 크다면 뽑은 item을 d.append(item) # d의 뒤로 append함. else: # 아니라면 answer += 1 # 순서를 하나 카운트 해준다음 if item[1] == location: ..
-
크레인 인형뽑기 게임프로그래밍/알고리즘 2021. 3. 28. 16:08
풀이 def solution(board, moves): grabBox = [] answer = [] for move in moves: for i in range(len(board)): if board[i][move-1] > 0: # index가 0 보다 크면 grabBox.append(board[i][move-1]) # grabBox에 그 수를 넣어줌 -> 인형 뽑았다는 소리 board[i][move-1] = 0 # 뽑은 그 자리를 0으로 메꿔준다. if grabBox[-1:] == grabBox[-2:-1]: # 맨 뒷자리와 맨 뒷자리 전의 수가 같으면 answer += grabBox[-1:] # answer에 맨 뒷자리 수를 넣어줌 grabBox = grabBox[:-2] # grabBox에 맨 뒷자..