Programmers 36

[프로그래머스 Lv.3] 단어 변환

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque def solution(begin, target, words): if target not in words: # words 안에 없다면 0 반환 return 0 def canExchange(arr_a,arr_b): # 바꿀 수 있는 알파벳인지 확인 diff = 0 for i in range(len(arr_a)): if arr_a[i] != arr_b[i]: diff += 1 if diff == 1: return True else: return False de..

Algorithm/BFS 2023.09.29

[프로그래머스 Lv.1] 모의고사

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(answers): answer = [] def method_1(answers): inputs = [1,2,3,4,5]*(10000//5 + 1) result = [1 for i,value in enumerate(answers) if answers[i] == inputs[i]] return sum(result) def method_2(answers): inputs = [2,1,2,3,2,4,2,5]*(10000//8 + 1) result = [1 for i,value in enumerat..

[프로그래머스 Lv.3] 가장 먼 노드

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque def solution(n, edge): answer = 0 graph = [[] for _ in range(n+1)] visited = [False]*(n+1) route = [] for start,end in edge: graph[start].append(end) graph[end].append(start) def bfs(index): visited[index] = True queue = deque([(index,0)]) route.append((ind..

[프로그래머스 Lv.1] 최소직사각형

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(sizes): sizes = [sorted(x,reverse=True) for x in sizes] # [[60, 50], [70, 30], [60, 30], [80, 40]] widths = [x[0] for x in sizes] # [60, 70, 60, 80] heights = [x[1] for x in sizes] # [50, 30, 30, 40] return max(widths)*max(heights) 이번 문제는 주어진 명함들의 가로와 세로길이가 주어졌을 때, 명함을 가로나 ..

[프로그래머스 Lv.2] 다리를 지나는 트럭

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(bridge_length, weight, truck_weights): time = 0 queue = [] while truck_weights or queue: time += 1 if queue: queue = [(x[0],x[1]-1) for x in queue if x[1]-1 != 0] if truck_weights and sum([x[0] for x in queue]) + truck_weights[0]

[프로그래머스 Lv.2] 프로세스

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(priorities, location): answer = 0 queue = [(i,value) for i,value in enumerate(priorities)] while queue: index, priority = queue.pop(0) if queue and max([x[1] for x in queue]) > priority: queue.append((index,priority)) continue answer += 1 if index == location: return answer..

[프로그래머스 Lv.2] 기능개발

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque def solution(progresses, speeds): answer = [] length = len(progresses) while len(progresses) > 0: count = 0 remain = 100-progresses[0] if remain%speeds[0] != 0: remain = remain // speeds[0] + 1 else: remain = remain // speeds[0] progresses = [value+(remain*..

[프로그래머스 Lv.2] 올바른 괄호

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(s): answer = True stack = [] for item in s: if len(stack) == 0: stack.append(item) elif stack[-1] == '(': if item == ')': stack.pop() elif item == '(': stack.append(item) else: stack.append(item) if len(stack) != 0: return False return True 이번 문제는 괄호만 입력받는다는 조건 하에, 괄호가 올바르게..