본문 바로가기
C++ 코딩 문제 풀이/프로그래머스

[Programmers] 숫자의 표현

by 섬댕이 2023. 8. 15.

https://school.programmers.co.kr/learn/courses/30/lessons/12924

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


 

문제 해결 과정

착안

자연수 $N$이 2 개 이상의 연속된 자연수들로 표현이 가능한지 확인하기 위해 1부터 최대 $N/2$ 이하의 자연수까지 반복하며 연속된 숫자의 합을 구해 $N$과 비교함으로써 표현 가능한 수를 구한 다음, 1을 더한 값($N = N$ 으로도 표현이 가능하므로)을 문제의 답안으로 사용하고자 하였다.

 

구현

[스포 주의] 아래 '더보기'를 누르면 코드가 나오니 주의하세요~

더보기
int solution(int n)
{
	int answer = 1;
	for (int i = 1; i <= n / 2; i++)
	{
		int sum = 0, j = i;
		while (sum < n)
			sum += j++;

		if (sum == n)
			answer++;
	}
	return answer;
}

 

실행 결과

댓글