아요 개발 일기
[프로그래머스]Level 1. 두 정수 사이의 합 본문
반응형
안녕하세용
오늘은 두 정수 사이의 합을 풀어보았습니다!!
문제
내가 푼 풀이
설명하기 민망할정도로 간단한 풀이지만 해보겠습니다..ㅎㅎ
수를 오름차순으로 정리해야해서 min과 max를 구해줬어요!
for in 문을 사용해서 min 값부터 max 값가지 result 값에 저장해 주었습니다!!
좋다고 생각한 풀이
return Int64(a + b) * Int64(max(a, b) - min(a, b) + 1) / Int64(2)
풀이도 좋구, min max에 파라미터 값으로 두가지가 들어가는건 본 적이 없는 것 같아서 궁금해서 데리고 왔어요!
짠 공식 문서를 찾아왔어요!
해석하자면, 비교 가능한 두 값 중에 작은 값을 반환합니다. 라고 하내요??
max(_:_:)는 당연히 큰 값을 반환하겠죠??
아! 위의 설명들을 보니 공식들의 뜻하는 바가 바로 이해가 됩니다!!
자세히 살펴봅시다!
return Int64(a + b) * Int64(max(a, b) - min(a, b) + 1) / Int64(2)
그러니까.. 만약, a = 7 b = 2라고 한다면
(10 * (8-2 +1 )) / 2
(10 * 7) / 2
70 / 2 = 35
계산식이 재밌네요??!!
제가 분석해보니까..
(a + b) * 더하는 수들의 갯수 / 2 이더라구요
저희 어릴때 끝 값씩 더해서 결과 값을 도출해내는 방식 있었죠?
이거!!
이 계산식을 사용해서 푼 것 같아요
양 끝 값을 더해서 수의 갯수를 곱하고 2로 나누면 계산이 됩니다!
간단하니 아주 좋은 풀이네요!
속도 비교
내가 푼 풀이 속도
좋다고 생각한 풀이 속도
확실히.. 좋다고 생각한 풀이의 속도가 훨씬 좋네요.....ㅎㅎㅎㅎ..
아직 멀었당!
혹시 틀린 부분이나 더 좋은 풀이가 있다면 댓글로 적어주세용! :D
반응형
'Algorithms > 문제 풀이' 카테고리의 다른 글
[프로그래머스] Level 1. 자연수 뒤집어 배열로 만들기 (1) | 2023.01.16 |
---|---|
[프로그래머스] Level 1. 문자열 다루기 기본 (0) | 2023.01.16 |
[프로그래머스] Level 1. 나머지가 1이 되는 수 찾기 (0) | 2023.01.16 |
[프로그래머스] Level 1. 수박수박수박수박수박수? (0) | 2023.01.16 |
[프로그래머스] Level 1. 평균 구하기 (0) | 2023.01.16 |