프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdef collatz_sequence(k): sequence = [k] while k > 1: if k % 2 == 0: k //= 2 else: k = 3 * k + 1 sequence.append(k) return sequencedef calculate_areas(sequence): areas = [] for i in range(len(sequence)-1): x0, x1 = i, i+1 y0, y1..
👉🏻 24444번: 알고리즘 수업 - 너비 우선 탐색 1import sys; input=sys.stdin.readlinefrom collections import deque, defaultdictdef bfs(graph, start, visited): queue = deque([start]) visited[start] = 1 order = 2 while queue: node = queue.popleft() for neighbor in graph[node]: if visited[neighbor] == 0: visited[neighbor] = order queue.append(neigh..
👉🏻 2303번: 숫자 게임import sys; input=sys.stdin.readlinefrom itertools import combinationsn = int(input())max_scores = []for person in range(1, n+1): cards = list(map(int, input().split())) max_score = 0 for combo in combinations(cards, 3): score = sum(combo) % 10 max_score = max(max_score, score) max_scores.append((max_score, person))winner = max(max_scores, key=l..
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfrom collections import dequedef bfs(graph, start): distance = {node: float('inf') for node in graph} distance[start] = 0 queue = deque([start]) while queue: current_node = queue.popleft() for neighbor_node in graph[current_node]: if distance[neighbor_node] == float('inf'):..
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdef solution(N, number): answer = 0 dp = [set() for _ in range(9)] if N == number: return (answer := 1) for i in range(1, 9): dp[i].add(int(str(N) * i)) for j in range(1, i): for num1 in dp[j]: for num2 in dp[i-j]: dp[i].add(num1..
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krimport mathdef solution(w,h): answer = 1 total = w * h unuse = w + h - math.gcd(w, h) answer = total - unuse return answer왜 이렇게 풀었을까?문제에서 사용할 수 있는 정사각형의 개수를 구하기 위한 핵심은 대각선이 몇 개의 정사각형을 지나가는지 파악하는 것입니다.직사각형 종이의 왼쪽 끝, 대각선이 시작하는 위치의 좌표를 (0, 0)이라고 두면 대각선이 이동하는 경로는 (0, 0)에서부터 (W, H)까지의 경로로 생각해볼 수 있습니다..
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdef hanoi(n, start, target, aux, answer): if n == 1: answer.append([start, target]) else: hanoi(n-1, start, aux, target, answer) answer.append([start, target]) hanoi(n-1, aux, target, start, answer) def solution(n): answer = [] hanoi(n, 1, 3, 2, answer) return answer왜 ..