ì ‘ê·¼ 방법 ¶
수�� 구현한다는 ���었다.
~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시간) 안ì—� ë��마쳤다. 시간안ì—� 테스트&ë¦¬íŒ©í† ë§� ë��내기는 ì—¬ì „ížˆ 잘 안ë�˜ëŠ” 편ì�´ë‹¤. 한 번 ë�” í•´ë´�ë�„ 괜찮ì�„ ë¬¸ì œ 같다.










