2021/08/07 토요일

Gong Intaek·2021년 8월 7일
0

일상

목록 보기
57/1031
post-thumbnail

TIL


오늘 한 일

  • 휴식
  • 산책(체력 회복용)
  • programers
    • 숫자의 표현 (level 2)

문제 풀이

숫자의 표현 (level 2)

주어진 숫자를 연속된 숫자들의 합으로 표현할 수 있는 방법의 수를 돌려주는 문제이다. 문제를 풀기에 앞서 주어진 숫자를 숫자들의 합으로 나타내기위한 수식을 먼저 생각 해보았다. 이는 초기항이 1이 아닌 등차수열의 합이다.

n, n+1, n+2, ... , n+m

인 모습이고, 이를 합한 결과는 다음과 같다.

n * (m+1) + 0.5 * m * (m+1) => 0.5 * (2n +m) * (m+1)

여기서 a=n , b= n+m 이라 하면

0.5 * (a + b) * (b - a + 1)

으로 적을수 있다.

주어진 숫자들(a,b)에대한 합을 구하기위해 위의 수식을 사용하였다. 그리고나서 방법의 숫를 구하기위해 초기항 a를 1부터 주어진 숫자까지 반복을 수행하게 하였고, 주어진 초기항에 맞는 b값을 구하기위해 while문을 사용한 이진탐색을 활용하였다. 적절한 b가 구해지면 방법의 수를 추가하는 방식으로 진행하여 전체적인 방법의 수를 구하였다.


오늘은...

휴식을 취하고, 산책을 갔을때이전보다 조금은 몸이 나아진듯하여 짧게 달리기를 하였다. 하지만 전체적으로 몸이 무거워졌다는것을 느꼈으며 호흡보다 종아리가 땡겨와서 달리기가 버겁 다는것을 느꼈다. 꾸준하게 체력을 키워야겠다는것만 확실히 알게 되었다.

profile
개발자가 되기위해 공부중

0개의 댓글