-
[💕 프로그래머스] 숫자의 표현Algorithm/1일 1코테 2020. 12. 7. 12:27반응형
프로그래머스 2단계
숫자의 표현
Q. 문제
programmers.co.kr/learn/courses/30/lessons/12924
A. 답
def solution(n): a = [i for i in range(1, n+1)] l = 0 r = 1 count = 0 while l < n: s = sum(a[l:r]) if s == n: count += 1 if s < n: r += 1 else: l += 1 return count
풀이
- 1부터 n까지의 숫자가 들어있는 리스트를 만들어준다.
- 투 포인터를 이용하기 위해 l과 r을 정의한다.
- l은 a[0]부터 시작하고, r은 a[1]부터 시작해서 while문을 이용해 sum(a[l:r])을 구해준다.
- 만약 s가 n과 같으면 count를 해준다.
- s보다 작으면 n의 크기를 늘리기 위해 r을 옆으로, 그 반대라면 l을 옆으로 더해준다.
다른사람 풀이
def expressions(num): answer = 0 # count 변수 for i in range(1, num + 1): s = 0 # 합을 누적하는 변수 while s < num: s += i i += 1 if s == num: answer += 1 return answer
for문을 이용해 1부터 하나씩 증가하여 num보다 작을때까지 누적,, 2부터 하나씩 증가하여 num보다 작을때까지 누적,,
누적한 값이 num과 같으면 +1 하는 방식
반응형'Algorithm > 1일 1코테' 카테고리의 다른 글
[💕 프로그래머스] 스킬트리 (0) 2020.12.15 [💕 프로그래머스] 최솟값 만들기 (0) 2020.12.15 [💕 프로그래머스] 카펫 (0) 2020.12.07 [💕 프로그래머스 Python] 타겟 넘버 (0) 2020.12.06 [🤷♀️ 백준] 1912번. 연속합 (0) 2020.11.16