Algorithm/1일 1코테
[💕 프로그래머스] 숫자의 표현
대인보우
2020. 12. 7. 12:27
반응형
프로그래머스 2단계
숫자의 표현
Q. 문제
programmers.co.kr/learn/courses/30/lessons/12924
코딩테스트 연습 - 숫자의 표현
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할
programmers.co.kr
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 하는 방식
반응형