์ ๊ทผ ๋ฐฉ๋ฒ ¶
์์์ ๊ตฌํํ๋ค๋ ์๊ฐ์ด์๋ค.
~cpp ์บ๋ฆฌ = ์๋ฆฌ์1 + ์๋ฆฌ์2 + ์ ๋จ๊ณ ์บ๋ฆฌ(์๋ฆฌ์1+์๋ฆฌ์2)
์ฝ๋ ¶
~cpp def carry( *digits ): result = 0 for digit in digits: result += digit if result > 9: return 1 return 0 def getValueOfDegree( num, degree ): if degree == 0: return 0 return (num % (degree * 10)) / degree def countUpCarry( n, m ): count = 0 degree = 1 while degree < 10*(n + m): count += carry( getValueOfDegree( n, degree ), getValueOfDegree( m, degree ), getCarry( n, m, degree) ) degree *= 10 return count def getCarry( n, m, degree ): if degree == 0: return 0 return carry( getValueOfDegree( n, degree/10 ), getValueOfDegree( m, degree/10 ), getCarry(n, m, degree/10) ) ######################################################################### import unittest class TemplateTestCase(unittest.TestCase): def testCountUpCarryEqualDegreeOne(self): self.assertEquals( 0, countUpCarry( 0,0 ) ) self.assertEquals( 1, countUpCarry( 9,1 ) ) def testGetValueOfDegree(self): self.assertEquals( 0, getValueOfDegree( 0, 1 ) ) self.assertEquals( 2, getValueOfDegree( 1234, 100 ) ) self.assertEquals( 0, getValueOfDegree( 1, 10 ) ) def testCountUpCarryEqualDegreeTwo(self): self.assertEquals( 0, countUpCarry( 10,10 ) ) self.assertEquals( 1, countUpCarry( 10,90 ) ) def testComplex(self): self.assertEquals( 4, countUpCarry( 1, 9999 ) ) self.assertEquals( 2, countUpCarry( 1, 9099 ) ) def testCarry(self): self.assertEquals( 0, carry( 0,0 ) ) self.assertEquals( 1, carry( 1,9 ) ) ######################################################################### if __name__ == '__main__': unittest.main()
์ด๋ ๊ฒ ๋๊ณ ๋ณด๋ ์์๊ณผ ๋น๊ตํด ์ด๋ฆ์ ์๋ชป ์ง์ ๋ถ๋ถ์ด ๋์ ๋ณด์ธ๋ค. ์๋ฌดํผ ์ ๋จ๊ณ ์บ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๋ถ๋ถ์ ๊ทธ๋ฅ ์์ฑํ๋๋ผ ํ๋ฆ์ ํ์ง ๋ชปํ๋ค. ์ ๋์๊ฐ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์์ง๋ง, ๋จธ๋ฆฌ ์์ ํจ์ ์ฌ๊ท ํธ์ถ์ ๊ณ์ ๋ ์ฌ๋ฆฌ๊ณ ์์๋ค. ์์์ด๋ ๋ฉํํฌ๊ฐ ์์๋๋ฐ๋ ๊ตฌํ์ ํ๋๋ฐ ๋ฉํํฌ๋ฅผ ์ฝ๋์ ์ฐ๊ฒฐ์ํค๋๋ฐ ์ค๋ ๊ฑธ๋ ธ๋ค. ์๋ ๋ฉํํฌ๋ฅผ ์๊ฐํ๊ณ ๊ตฌํํ ๊ฒ์ด ์๋๋ค. ์ค๋ณต์ ์์ ๋ค ๋ณด๋ ๊ทธ์ ์์ผ ์์์ด ๋์ ๋ค์ด์๋ค.
๋น ๋ฅธ ์๋๊ฐ ์๋์๋๋ฐ๋ ์คํ๋ ค ์์ํ๋ ์๊ฐ(1์๊ฐ) ์์ ๋๋ง์ณค๋ค. ์๊ฐ์์ ํ ์คํธ&๋ฆฌํฉํ ๋ง ๋๋ด๊ธฐ๋ ์ฌ์ ํ ์ ์๋๋ ํธ์ด๋ค. ํ ๋ฒ ๋ ํด๋ด๋ ๊ด์ฐฎ์ ๋ฌธ์ ๊ฐ๋ค.
๋น ๋ฅธ ์๋๊ฐ ์๋์๋๋ฐ๋ ์คํ๋ ค ์์ํ๋ ์๊ฐ(1์๊ฐ) ์์ ๋๋ง์ณค๋ค. ์๊ฐ์์ ํ ์คํธ&๋ฆฌํฉํ ๋ง ๋๋ด๊ธฐ๋ ์ฌ์ ํ ์ ์๋๋ ํธ์ด๋ค. ํ ๋ฒ ๋ ํด๋ด๋ ๊ด์ฐฎ์ ๋ฌธ์ ๊ฐ๋ค.