코딩문제15 [프로그래머스] 단어 변환 (Python) Stack 과 Dictionary를 이용해 풀이 하였습니다. from collections import defaultdict def check(word1, word2): # 1개의 알파벳만 다른 문자 확인 cnt = 0 for i in range(len(word1)): if word1[i] != word2[i]: cnt += 1 if cnt == 1: return True else: return False def solution(begin, target, words): if target not in words: return 0 graph = defaultdict(list) for i in words: if check(begin, i): graph[begin].append(i) for i in range(.. 2022. 6. 23. [프로그래머스] [1차] 프렌즈4블록 (Python) def return_xy(m,n,board): # 2*2 형태로 사라질 블록의 왼쪽위 블럭의 좌표값 리턴 arr = [] for i in range(m): for j in range(n): if i+1 < m and j+1 < n: if board[i][j] and board[i][j] == board[i][j+1] == board[i+1][j] == board[i+1][j+1]: # 왼쪽위 블록 기준으로 그 값이 0이 아니고 오른쪽, 아래, 오른쪽 아래 블록의 값이 값으면 좌표값 저장 arr.append([i,j]) return arr def check(m,n, board): # 2*2 형태로 사라질 블록이 있는지 확인 for i in range(m): for j in range(n): if i+1 <.. 2022. 6. 9. 프로그래머스 괄호 변환 (Python) def right(w): # 올바른 괄호 문자열인지 확인 stack = [] for i in w: stack.append(i) if len(stack)>=2 and stack[-2] == '(' and stack[-1] == ')': stack = stack[:-2] # stack의 끝에 2개가 '()' 이면 없애기 if stack: # stack에 남은 문자열 있다면 올바른 괄호 아님 return False else: # stack에 남은 문자열 없다면 올바른 괄호 return True def algorithm(w): if w == '': # 1. 빈문자열인 경우, 빈 문자열 반환 return '' g1 = 0 # '(' 개수 g2 = 0 # ')' 개수 for i in range(len(w)): # .. 2022. 6. 2. [Leetcode] 237. Delete Node in a Linked List [문제] Write a function to delete a node in a singly-linked list. You will not be given access to the head of the list, instead you will be given access to the node to be deleted directly. It is guaranteed that the node to be deleted is not a tail node in the list. [생각] 알고 보면 정말 간단한 문제였는데 순간 뇌정지가 왔네요 ㅋㅋ 이전 node의 정보를 알 수 없는데 이걸 삭제하라고...? Linked List 특성상 다음 node의 정보는 접근 가능하나, 이전 node의 접근은 불가능 합니다. 어.. 2022. 3. 20. 이전 1 2 3 4 다음