목록algorithm/Python (36)
on my way

import sysN = int(sys.stdin.readline())M = int(sys.stdin.readline())num = sorted(map(int, sys.stdin.readline().split()))start, end, answer = 0, N-1, 0while start 배열 정렬 후, 투 포인터로 합을 구한다.start, end 두 포인터가 만나면 종료 두 수의 합이 M보다 작으면 작은 수를 늘려야 M에 가까워지고,두 수의 합이 M보다 크면 큰 수를 줄여야 M에 가까워지는 것을 이용

import sysN = int(sys.stdin.readline())start, end, total, result = 1, 1, 1, 0while end start부터 end까지 투포인터로 부분합이 N인지 확인한다.0. start, end는 모두 1에서 시작. total 1은 초기값이다. result는 0부터 시작.1. total == N 이면 result++, end+=1, total에 end를 더한다2. total이 N 미만이면, end+=1, total에 end를 더한다.3. total이 N 이상이면, total에 start를 빼고, start+=1 end 이동으로 구간을 확장시키고, 구간합에 더하고.구간합에서 start를 빼고 start 이동으로 구간을 축소시킨다. 이 순서가 헷갈려서 처음에 ..
https://school.programmers.co.kr/learn/courses/30/lessons/161988 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명 및 알고리즘 분석이 문제는 수열 sequence에 대해 연속 부분 수열에 1과 -1이 교차하는 펄스 수열을 곱한 뒤, 그 합 중에서 가장 큰 값을 구하는 문제이다.펄스 수열은 [1, -1, 1, -1, ...] 또는 [-1, 1, -1, 1, ...]과 같이 1과 -1이 번갈아 가며 등장하는 수열을 의미한다.예를 들어, 주어진 수열 sequence가 [2, 3, -6, 1, 3, -1, ..

https://school.programmers.co.kr/tryouts/85896/challenges?language=python3 def solution(s): x, cntx, cnte, cnt = s[0], 0, 0, 0 for i in range(len(s)): if s[i]==x: cntx+=1 else: cnte +=1 if cntx==cnte: cnt += 1 cntx, cnte = 0, 0 if i+1

https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krdef solution(k, m, score): score.sort(reverse=True) return sum([min(score[i:i+m])*m for i in range(0, len(score), m) if len(score[i:i+m])==m])

https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(n, m, section): start, cnt = section[0], 1 for sec in section: if sec