[Python] 무인도 여행
·
study/Programmers
문제링크 및 설명https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근법DFS를 활용하여 이어진 섬들끼리의 총 합을 answer에 append하는 방식으로 구현하였다.DFS에서 0이 리턴되는 경우는 방문할 수 없는 섬이라 answer에 append하지 않는다.런타임 에러가 발생하여 sys.setrecursionlimit을 활용하여 재귀 최대 깊이를 설정하였다. import syssys.setrecursionlimit(int(1e9))mx = [1,..
[Python] 연속된 부분 수열의 합
·
study/Programmers
문제링크 및 설명https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근법투포인터를 활용하여 합이 k보다 작을때까지의 연속된 부분 수열의 합을 찾는다.만약 누적합이 k와 같다면 answer 리스트에 값을 더한다.이 때 합이 같은 수열이 여러 개라면 길이가 짧은 수열을 리턴해야하기 때문에 [시작 idx, 끝 idx, 부분 수열의 길이]를 리스트에 더한다.answer 리스트를 길이를 나타내는 x[2] 기준으로 정렬한 후, 첫번째 원소의 [시작 idx,끝..
imos 알고리즘
·
study
1.   imos 알고리즘이란?이모스 알고리즘은 구간 값 업데이트를 효율적으로 수행할 수 있는 알고리즘으로, 주로 구간에 일정한 값을 더하거나 빼는 작업을 빠르게 처리할 때 사용된다.  1.1 기본원리차분 배열 초기화 : 크기 N+1의 배열을 0으로 초기화한다.구간 업데이트 : 각 업데이트 연산을 통해 차분 배열에 값이 더해지거나 빼진다.누적 합 계산 : 배열의 누적 합을 계산하여 원래 배열의 값을 구한다.1.2 예제 Naive하게 For문을 활용한 해법식당을 방문한 각 고객 i(명에 대해 입장시간 S_i와 퇴장시간 E_i가 주어진다. (0 가게에 가장 많은 손님이 있었던 때의 손님의 수 M은 몇일까?  (단, 같은 시간에 퇴장과 입장이 있을 경우 퇴장이 선행된다고 가정한다.)   time_list = ..
[Python] 누적합에 활용되는 accumulate
·
study
1. accumulate란?Python의 itertools 모듈에 포함된 함수로, 누적 합계 또는 누적 계산을 수행하는데 사용된다.기본적으로 입력 시퀀스 요소들에 대해 누적 합을 계산하지만, 함수 인수를 제공하여 다른 누적 연산도 수행할 수 있다. 1.1 기본 사용법itertools.accumulate(iterable, func=operator.add)iterable : 누적 계산을 수행할 입력 시퀀스func : 두 인수를 취하고 하나의 값을 반환하는 이항 함수. 기본 값은 operator.add로 누적합계를 계산하다.입력된 iterable과 같은 타입의 값을 생성하는 이터레이터를 반환한다. list로 변환하여 결과를 확인할 수 있다.1.2 사용 예시1.2.1 기본 사용법 (누적 합계)import ite..