프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내코드
def solution(common):
diff = common[1] - common[0]
if common[1] + diff == common[2]: # 등차수열 확인
return common[-1] + diff
else: # 등비수열인 경우
ratio = common[1] // common[0]
return common[-1] * ratio
코드설명
- 등차수열 확인:
common[1] - common[0] 값을 diff로 저장하고, 이를 이용해 등차수열인지 확인합니다.
만약 common[1] + diff == common[2]라면 등차수열이므로, 마지막 원소에 diff를 더한 값을 반환합니다. - 등비수열 확인:
등차수열이 아니라면 등비수열이라고 가정합니다.
이때, common[1] // common[0] 값을 ratio로 저장하고, 마지막 원소에 ratio를 곱한 값을 반환합니다.
특징
- 가독성: diff와 ratio라는 변수를 사용해 코드의 의미를 명확히 했습니다.
- 효율성: 불필요한 반복 연산을 줄여 계산 속도를 개선했습니다.
- 유연성: 등차와 등비를 모두 정확히 처리할 수 있는 구조로 설계했습니다.
다른 코드
def solution(common):
if common[1] - common[0] == common[2] - common[1]: # 등차수열 확인
return common[-1] + (common[1] - common[0])
else: # 등비수열인 경우
return common[-1] * (common[1] // common[0])
코드설명
- 등차수열 확인:
common[1] - common[0]과 common[2] - common[1]를 비교해 등차수열 여부를 판단합니다.
등차수열이라면 마지막 원소에 (common[1] - common[0])를 더해 반환합니다. - 등비수열 확인:
등차수열이 아니라면 등비수열로 간주합니다.
이때 (common[1] // common[0])을 계산해 마지막 원소에 곱한 값을 반환합니다.
특징
- 비교를 직접적으로 수행해 코드의 간결성을 높였습니다.
- 가독성이 조금 떨어질 수 있지만, 구현이 직관적입니다.
두 코드 비교
- 가독성:
첫 번째 코드(내코드)는 변수 diff와 ratio를 사용해 코드의 목적을 명확히 드러냅니다.
반면, 두 번째 코드는 계산 과정을 코드 내에서 직접 수행해 상대적으로 덜 직관적일 수 있습니다. - 효율성:
두 코드 모두 비슷한 효율성을 가집니다. 다만, 첫 번째 코드는 변수에 값을 저장하여 중복 계산을 방지합니다. - 작성 편의성:
두 번째 코드는 간단히 작성할 수 있으나, 길어질 경우 가독성 저하가 우려됩니다.
결론
첫 번째 코드(내코드)는 변수명을 활용해 가독성과 유지보수성을 높였으며, 연산 효율성도 뛰어납니다.
두 번째 코드는 짧고 간결하지만, 가독성과 유연성 면에서는 첫 번째 코드보다 다소 부족할 수 있습니다.
필요에 따라 상황에 맞는 코드를 선택해 활용하면 좋을 것 같습니다!
'프로그래머스' 카테고리의 다른 글
프로그래머스 | Python | 안전지대 (1) | 2025.01.20 |
---|---|
프로그래머스 | Python | 연속된 수의 합 (2) | 2025.01.17 |
프로그래머스 | Python | 특이한 정렬 (1) | 2025.01.16 |
프로그래머스 | Python | 문자열 밀기 (1) | 2025.01.15 |
프로그래머스 | Python | 유한소수 판별하기 (0) | 2025.01.13 |