개인 공부185 [Python] 백준 2559번 : 수열 https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net 문제 풀이 구간 합 문제이다! n부터 m만큼의 범위의 합 자체를 계산하는 것은 쉽다. 하지만 시간이 부족하다. 두 가지만 생각하면 된다. 1. sum()을 남발하면 느리다. 2. sum(arr[n:n+m])과 sum(arr[n+1:n+m+1])의 차이는 n번째 값과 n+m+1번째 값의 차이다. 느낀 점 그렇게 어렵지 않았지만 마지막 아이디어를 생각해내는데 시간이 조금 걸렸다! 풀어본 .. 2022. 6. 24. [Python] 백준 11659번 : 구간 합 구하기 4 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 문제 풀이 가장 기본적인 누적 합 문제이다! 누적 합은 DP의 개념과 비슷하다고 볼 수 있다. 리스트를 추가로 구현하고 계산된 값을 미리 넣어둔다. n~m까지의 구간 합은 m까지의 누적 합과 n까지의 누적 합을 뺀 것이다! 느낀 점 시간 초과가 뜨길레 뭐지..? 했는데 단순히 모르는 알고리즘이었다. 그렇다고 엄청 특별한 알고리즘은 아니어서 금방 해결할 수 있었다! 코드 fr.. 2022. 6. 24. [Python] 프로그래머스 : 괄호 변환 https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 문제 풀이 재귀와 문자열의 이해를 묻는 문제였다. 주어진 절차 그대로 해결하면 된다. def isCorrect(str): test = [] for element in str: if len(test) == 0: test.append(element) elif test[-1] == '(' and element == ')': test.pop() else: test.app.. 2022. 6. 23. [Python] 프로그래머스 : 메뉴 리뉴얼 https://programmers.co.kr/learn/courses/30/lessons/72411?language=python3 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 문제 풀이 for course in course: for order in orders: n_order = ''.join(sorted(order)) for combo in [''.join(i) for i in list(combinations(n_order, course))]: if combo in combos[course-1]: com.. 2022. 6. 22. [Python] 프로그래머스 : 내적 https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 문제 풀이 느낀 점 코드 def solution(a, b): return sum([x*y for x, y in zip(a,b)]) 2022. 6. 22. [Python] 프로그래머스 : 음양 더하기 https://programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 문제 풀이 단순하게 부호에 따라 더하고 빼기만 하면 된다. 느낀 점 코드 def solution(absolutes, signs): answer = 0 for i in range(len(signs)): if signs[i]: answer += absolutes[i] else: answer -= absolutes[i] return answer 2022. 6. 22. 이전 1 ··· 27 28 29 30 31 다음