본문 바로가기
반응형

알고리즘/프로그래머스 level 1,272

[파이썬🐍] 프로그래머스 : 조이스틱 def solution(name): short_map=[min(ord(i)-ord("A"), ord("Z")-ord(i)+1) for i in name] idx, answer = 0, 0 while True: answer += short_map[idx] short_map[idx] = 0 if sum(short_map) == 0: return answer left, right = 1, 1 while short_map[idx-left] == 0: left += 1 while short_map[idx+right] == 0: right += 1 answer += left if left < right else right idx += -left if left < right else right 2021. 5. 28.
[파이썬🐍] 프로그래머스 : 괄호 회전하기 def solution(s): answer = 0 for i in range(len(s)): if i == 0: s else: s = s[1:] + s[0] if check(s)==True: answer += 1 return answer def check(s): stack = [] for i in s: if i in ('[', '(', '{'): stack.append(i) else: if not stack: return False x = stack.pop() if i == ']' and x != '[': return False elif i == ')' and x != '(': return False elif i == '}' and x != '{': return False if stack: return .. 2021. 5. 27.
[파이썬🐍] 프로그래머스 : 점프와 순간이동 def solution(n): ans = 0 while n > 0: q,r = divmod(n,2) n = q if r != 0: ans += 1 return ans 설명에 비해 간단한 코드였다. n을 2로 계속나누는 작업만 하면 된다. 2로 나누다가 나눠떨어지지 않는 경우만 더해주면 된다. 2021. 5. 26.
[파이썬🐍] 프로그래머스 : 스킬트리 def solution(skill, skill_trees): answer = 0 for i in skill_trees: skill_list = list(skill) for s in i: if s in skill: #skill에 포함되어 있지만 if s != skill_list.pop(0): #순서가 안맞는 경우 break else: answer += 1 #break에 걸리지 않고 for문을 다 돌았을 때 return answer 2021. 5. 26.
반응형