본문 바로가기

분류 전체보기265

[알고리즘] 프로그래머스 | 가장 가까운 같은 글자 가장 가까운 같은 글자 답: 더보기 def solution(s): answer = [] a_dic = {} for i, alpha in enumerate(list(s)): if not alpha in a_dic: answer.append(-1) else: answer.append(i - a_dic[alpha]) a_dic[alpha] = i return answer 문제 분석 및 해석 문자열 s가 주어질 때 s의 알파벳이 처음 나왔을때는 -1, 이전에 있었던 알파벳이면 index의 차이를 배열에 더해 return하는 문제 >> 풀이생각 1. stack을 쌓기, stack에 없으면 -1 2. -1번에 있으면 1 -2번에 있으면 2... while문으로 처리해보자 단점 : >> if not 요소 in sta.. 2023. 11. 7.
[알고리즘] 프로그래머스 | 대충 만든 자판, 추억 점수 추억 점수 답: 더보기 def solution(name, yearning, photo): answer = [0] * len(photo) yearn = {} for k, v in zip(name, yearning): yearn[k] = v for i, p in enumerate(photo): for name in p: if name in yearn: answer[i] += yearn[name] return answer 문제 분석 및 해석 각각의 사람마다 추억 점수가 있다. 사진에는 여러 사람이 들어가 있는데, name 과 yearning을 바탕으로 각 photo의 추억점수를 계산하고자 한다 입력 name 이름이 담긴 배열 yearning 추억점수가 담긴 배열 - name과 yearning의 길이는 동일 p.. 2023. 11. 6.
리눅스 커널이야기 - chapter 1, 2 보호되어 있는 글 입니다. 2023. 11. 2.
[알고리즘] 프로그래머스 | 단어변환 단어 변환 답: 더보기 온전히 함수로 분리해 풀이하기 from collections import deque def bfs(begin, target, words): q = deque() q.append((begin, 0)) while q: start_word, step = q.popleft() if start_word == target: return step for word in words: count = 0 for i in range(len(word)): if word[i] != start_word[i]: count += 1 if count == 1: q.append((word, step+1)) def solution(begin, target, words): if not target in words: r.. 2023. 11. 2.