목록프로그래머스 (8)
Love Every Moment
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def dfs(start, visited, computers): # 현재 노드 방문 visited[start] = True for i, connected in enumerate(computers[start]): # 자기자신이 아니면서 아직 방문하지 않은 인접 노드 방문 if i != start and connected == 1 and visited[i] == False: dfs(i, visited, computers) return visited def solution(n, computers): an..
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 from collections import deque def solution(maps): answer = 0 n, m = len(maps), len(maps[0]) queue = deque() queue.append((0, 0)) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] while queue: x, y = queue.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if nx = n or ny < ..
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(clothes): answer = 1 di = dict() for c in clothes: di[c[1]] = di.get(c[1], 0) + 1 for key, value in zip(di.keys(), di.values()): answer *= value + 1 answer -= 1 return answer 해시테이블을 이용하여 풀면 간단해지는 문제 파이썬에서는 딕셔너리를 통해 해시테이블 이용 가능 의상의 종류를 딕셔너리의 key 로 두고, 새로운 의상의 이름이 나올 때마..
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(n, s, a, b, fares): answer = 0 INF = n * 100000 + 1 # 모든 노드 무한으로 초기화 cost = [[INF] * n for _ in range(n)] # 자기자신->자기자신 비용 0원 for i in range(n): cost[i][i] = 0 # 인접한 노드들간의 비용 적용 for fare in fares: start = fare[0] - 1 finish = fare[1] - 1 price = fare[2] cost[start][fin..
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 정수가 담긴 리스트 num_list 가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을, 10 이하이면 모든 원소의 곱을 return 하도록 solution 함수를 완성해주세요. 단, 2 ≤ num_list의 길이 ≤ 20 1 ≤ num_list의 원소 ≤ 9 예제 num_list result [3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1] 51 [2, 3, 4, 5] 120 풀이(1) from math import prod def solution(..
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다. 12 ⊕ 3 = 123 3 ⊕ 12 = 312 양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해주세요. 단, a ⊕ b와 b ⊕ a 가 같다면 a ⊕ b 를 return 합니다. 예제 abresult 991991 898898 풀이(1) def solution(a, b): strings = list(map(str, [a, b]..
출처 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 길이가 같은 두 문자열 str1과 str2가 주어집니다. 두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해주세요. 제한 사항 1 ≤ str1의 길이 = str2의 길이 ≤ 10 str1과 str2는 알파벳 소문자로 이루어진 문자열입니다. 예제 str1str2result "aaaaa""bbbbb""ababababab" 풀이(1) def solution(str1, str2): answer = '' for i in ran..
출처 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 가장 추천 많이 받은 풀이 def solution(id_list, report, k): answer = [0] * len(id_list) reports = {x : 0 for x in id_list} for r in set(report): reports[r.split()[1]] += 1 for r in set(report): if reports[r.split()[1]] >= k: answer[id_list.index(r.split()[0])] += ..