프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfrom collections import dequedef transform_time(time): h, m = map(int, time.split(':')) return h * 60 + mdef solution(plans): plans.sort(key=lambda x: transform_time(x[1])) answer = [] pause_hw = [] current_hw = None current_end_time = 0 for plan in plans: name, start_tim..
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krimport mathdef solution(k, d): answer = 0 for x in range(0, d + 1, k): y = math.sqrt(d ** 2 - x ** 2) answer += int(y // k) + 1 return answer왜 이렇게 풀었을까?필요한 사전 지식피타고라스 정리, 완전 탐색 최적화하는 방법(이중 for문을 단일 for문으로)이 문제로부터 구현력 기르기특정 x값에 대해 가능한 최대 y값을 피타고라스 정리를 활용하여 계산하였습니다.int(y // k) + 1로..
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdef compress(s, n): result = '' cnt = 1 prev = s[:n] for i in range(n, len(s), n): cur = s[i:i+n] if cur == prev: cnt += 1 else: result += (str(cnt) + prev) if cnt > 1 else prev prev = cur cnt = 1 result += (str(cnt) + prev) if cnt..
프로그래머스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..
프로그래머스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왜 ..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krdef solution(board): answer = 0 rows = len(board) cols = len(board[0]) dp = [[0] * cols for _ in range(rows)] for i in range(rows): dp[i][0] = board[i][0] answer = max(answer, dp[i][0]) for j in range(cols): dp[0][j] = board[0][j] ..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krdef solution(places): directions = [(-1, 0), (1, 0), (0, -1), (0, 1), (-1, -1), (-1, 1), (1, -1), (1, 1)] def is_safe(place): for r in range(5): for c in range(5): if place[r][c] == 'P': for dr, dc in directions[:4]: ..