본문 바로가기
PROGRAMMERS 49993: 스킬트리 Link : programmers.co.kr/learn/courses/30/lessons/49993 Python 더보기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 def solution(skill, skill_trees): skill_data = dict() counter = 0 for i in range(len(skill) - 1, 0, -1): skill_data[skill[i]] = skill[i - 1] for data in skill_trees: stack = [] for i in data: if i in skill_data: if skill_data[i] in stack: stack.append(i) else: break else: stack.append(.. 2021. 1. 6.
43162: 네트워크[DFS/BFS] Link : programmers.co.kr/learn/courses/30/lessons/43162 1. 문제 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 2. 문제의 조건 1 2021. 1. 6.
PROGRAMMERS 43162: 네트워크 Link : programmers.co.kr/learn/courses/30/lessons/43162 Python 더보기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 def DFS(node, network, link_data, value): for i in link_data[node]: if i in network: if network[i] == -1: network[i] = value DFS(i, network, link_data, value) def solution(n, computers): global map_size map_size = n node_data = d.. 2021. 1. 6.
42860: 조이스틱(그리디) Link : programmers.co.kr/learn/courses/30/lessons/42860 1. 문제 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) ▶ - 커서를 오른쪽으로 이동 예를 들어 아래의 방법으로 JAZ를 만들 수 있습니다. - 첫 번째 위치에서 조이스틱을 위로 9번 조작하여 J를 완성합니다. - 조이스틱을 왼쪽으로 1번 조작하여 커서를 마지막 문자 위치로 이동시킵니다. - 마지막.. 2021. 1. 6.
PROGRAMMERS 42860: 조이스틱 Link : programmers.co.kr/learn/courses/30/lessons/42860 Python 더보기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 alphabet = [str(chr(i + 65)) for i in range(26)] def small_distance(word): # 문자의 최소 길이 pos = alphabet.index(word) d1 = 0 for i in range(26): if alphabet[(pos + i) % 26] == 'A': d1 = i break .. 2021. 1. 6.