[Code Wars] Triangular Treasure

문제

https://www.codewars.com/kata/525e5a1cb735154b320002c8/train/python

나의 풀이

import unittest


def triangular(n):
    return 0 if n <= 0 else n * (n + 1) / 2


class TestTriangularTreasure(unittest.TestCase):
    def test_should_return_zero_when_given_n_is_negative(self):
        n = -10
        result = triangular(n)
        self.assertEqual(result, 0)

    def test_should_return_zero_when_given_n_is_zero(self):
        n = 0
        result = triangular(n)
        self.assertEqual(result, 0)

    def test_should_return_fourty_five_when_given_n_is_nine(self):
        n = 9
        result = triangular(n)
        self.assertEqual(result, 45)

다른 사람의 풀이

  1. Best Practice 1등의 풀이

     def triangular(n):
         return n*(n+1)/2 if n > 0 else 0
    
    • else 로 0을 빼는 것이 더 깔끔해 보인다.

회고