목록분류 전체보기 (47)
코딩
programmers.co.kr/learn/courses/30/lessons/67260?language=python3 코딩테스트 연습 - 동굴 탐험 9 [[0,1],[0,3],[0,7],[8,1],[3,6],[1,2],[4,7],[7,5]] [[8,5],[6,7],[4,1]] true 9 [[8,1],[0,1],[1,2],[0,7],[4,7],[0,3],[7,5],[3,6]] [[4,1],[5,2]] true 9 [[0,1],[0,3],[0,7],[8,1],[3,6],[1,2],[4,7],[7,5]] [[4,1],[8,7],[6,5]] false programmers.co.kr tech.kakao.com/2020/07/01/2020-internship-test/ 2020 카카오 인턴십 for Tech d..
www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net n = int(input()) data = [] for _ in range(n): days, cost = input().split(" ") data.append((int(days), int(cost))) dp = [0] * n if data[-1][0] == 1: dp[-1] = data[-1][1] # 마지막 날짜는 먼저 처리 for i in range(n-2, -1, -1): days, cost = data[i][0], data[i][1] if days + i < n: dp[i] = max(dp[i + days] + cost, dp[i+1]) ..
www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net import copy n = int(input()) arr = list(map(int, input().split())) dp = copy.deepcopy(arr) for i in range(n): for j in range(i): if arr[j] < arr[i]: dp[i] = max(dp[j] + arr[i], dp[i]) print(max(dp))
www.hackerrank.com/challenges/lilys-homework/problem Lily's Homework | HackerRank Help George figure out Lily's homework www.hackerrank.com def solution(arr): cnt = 0 n = len(arr) sorted_arr = sorted(arr) index_dict = {arr[i] : i for i in range(n)} for i in range(n): if arr[i] != sorted_arr[i]: get_index = index_dict[sorted_arr[i]] index_dict[ arr[i] ] = index_dict[ sorted_arr[i]] arr[i], arr[ge..
programmers.co.kr/learn/courses/30/lessons/12971 코딩테스트 연습 - 스티커 모으기(2) N개의 스티커가 원형으로 연결되어 있습니다. 다음 그림은 N = 8인 경우의 예시입니다. 원형으로 연결된 스티커에서 몇 장의 스티커를 뜯어내어 뜯어낸 스티커에 적힌 숫자의 합이 최대가 되도록 programmers.co.kr programmers.co.kr/learn/courses/30/lessons/42897 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr def solution(sti..
from bisect import bisect_right, bisect_left lst= [1, 4, 6, 10] print(bisect_left(lst, 6)) # result = 2 print(bisect_right(lst , 6)) # result = 3 1. 해당 값이 리스트에 있을 때 bisect_left - 해당 index 반환 bisect_right - 해당 index+1 반환 print(bisect_left(lst, 9)) # result = 3 print(bisect_right(lst , 9)) # result = 3 2. 해당 값이 리스트에 없을 때 bisect_left - 리스트 오름차순에 들어갈 index 반환 bisect_right - 리스트 오름차순에 들어갈 index 반환
programmers.co.kr/learn/courses/30/lessons/72412 = q_score: end = mid else: start = mid + 1 answer.append(len(scores) - start) else: answer.append(0) return answer 나머지 코드들은 거의 문자열을 처리해 주는 코드들이기 때문에, 문자열 처리에 익숙하다면 밑에 코드들만 보는 것이 이해가 쉬울 수도.. # 1. 모든조건이 상관없는 " - and - and - and - 100"과 같은 상황이 나올 수 있으므로 " ": [100] 과 같은 빈문자열 key 값(k = 0) 도 만들어주어야 한다. for k in range(5): for combi in combinations(tmp_st..
programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴 programmers.co.kr def solution(p): if p == "": return "" cnt = 0 is_correct = True for i in range(len(p)): if p[i] == ')': cnt -= 1 else: cnt += 1 if cnt < 0: is_correct = False if cnt == 0: if is_correct: return p[:i+1] + solutio..