본문 바로가기

Python/Python 문제풀이

[Python] 프로그래머스 - 가장 가까운 같은 글자 [가장 가까운 같은 글자]📝 풀이[내 풀이]def solution(s): alphabet_list = [False for i in range(97, 123)] result = [] for i, v in enumerate(s): if alphabet_list[ord(v) - 97] == False: alphabet_list[ord(v) - 97] = True result.append(-1) else: c = -1 check = s[:i] for j in range(len(check)): if v == check[c]: .. 더보기
[Python] 프로그래머스 - 둘만의 암호 [둘만의 암호]📝 풀이def solution(s, skip, index): # 알파벳 리스트와 건너뛸 문자 집합을 생성 alphabet = [chr(i) for i in range(97, 123)] skip_set = set(skip) # skip에 있는 알파벳을 제외한 유효한 알파벳 리스트를 생성 valid_alphabet = [ch for ch in alphabet if ch not in skip_set] # 각 문자를 변환할 새로운 문자열을 저장할 리스트 result = [] for char in s: # 현재 문자의 위치를 valid_alphabet에서 찾음 current_index = valid_alpha.. 더보기
[Python] 프로그래머스 - 카드 뭉치 [카드 뭉치] 📝 풀이from collections import dequedef solution(cards1, cards2, goal): cards1 = deque(cards1) cards2 = deque(cards2) for go in goal: if len(cards1) > 0 and go == cards1[0]: cards1.popleft() elif len(cards2) > 0 and go == cards2[0]: cards2.popleft() else: return "No" return "Yes" 처음에는 goal 값에 순서를 .. 더보기
[Python] 프로그래머스 - 대충 만든 자판 [대충 만든 자판] 📝 풀이def solution(keymap, targets): num = {} for key in keymap: for i, k in enumerate(key): if num.get(k): if num[k] > i+1: num[k] = i+1 else: num[k] = i+1 answer = [] for tar in targets: val = 0 for t in tar: if num.get(t): val += num[t] els.. 더보기
[Python] 프로그래머스 - 올바른 괄호 [올바른 괄호] 📑 문제 📝 풀이 나의 풀이 def solution(s): l = 0 if s[0] == '(' and s[-1] == ')': for i in s: if i == '(': l += 1 else: l -= 1 if l < 0: return False if l == 0: return True else: return False else: return False 스택과 큐를 활용한 풀이 def solution(s): stack = [] for i in range(len(s)): if s[i] == '(': stack.append('(') else: if len(stack) == 0: return False else: stack.pop() if len(stack) == 0: return True.. 더보기
[Python] 프로그래머스 - 부족한 금액 계산하기 [부족한 금액 계산하기] 📑 문제 📝 풀이 def solution(price, money, count): m = 0# 총 이용 금액 for i in range(count): m += price * (i+1) if m > money: return m - money else: return 0 더보기