가자공부하러!

두 정수 사이의 합 (프로그래머스) - 완료 본문

공부/알고리즘

두 정수 사이의 합 (프로그래머스) - 완료

오피스엑소더스 2019. 5. 17. 19:38

문제 링크

 

2019-05-17 시작!

2019-05-17 성공! 4점 획득!

 

문제 : 

[방법 1]

* big = a와 b 중 큰 값,  sml = a와 b 중 작은 값,  dts = big과 sml의 거리

1. a와 b 중 어떤 값이 더 큰지 비교한다.

2. big == sml 이면 answer값을 big으로 정하고 즉시 return한다.

3. dts만큼 반복하며 sml에 1씩 더하면서 누적한다

 ㄴ big과 sml이 음수면 어떻게 해? > 음수에는 -1을 곱해서 더한 다음에 dst에 저★장

 ㄴ sml의 초기값 = a와 b중 작은 값

 ㄴ ex) sml=3, big=5인 경우 3+(4+5) == 초기값+(반복누적)

4. 결과값을 리턴한다.

 

[방법 2] : a와 b의 상태에 따라 가우스 공식 활용

1. 음수-음수

  >  [ { ( ( sml * (sml - 1) ) / 2 ) - ( ( big * (big + 1) ) / 2 ) } ] * -1

2. 양수만 있는 경우 ( 0 없음 )

  >  { ( ( big * (big + 1) ) / 2 ) - ( ( sml * (sml - 1) ) / 2 ) 

3. 두 숫자가 같은 경우 ( 0 포함 )

  > return big;

4. 음수와 양수가 모두 있는 경우

  > { ( ( big * (big + 1) ) / 2 ) - ( ( sml * (sml - 1) ) / 2 ) 

 

내 코드 : 

github 소스코드 링크

 

 

수행결과 :

1차 실패! - [방법1]

2차 실패! - [방법1]

  > 수정내용 : int 변수를 long으로 변경 [방법 1]

 

3차에 성공! [방법 2] 사용!

 

 

구글링 코드 : -

 

 

 

 

 

 

 

맨 위로

Comments