์ ๊ทผ ¶
์ฒ์ ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ๋๋ต 4๋ถ. '10์ง์' ๋ผ๋ ๋ง์ ํํน๋์๋ค๊ฐ ์ํ ๋ฐ์ดํฐ ๋ณด๋ฉด์ ๊ฐ๋จํ ๊ฐ์ ์ก์.
์ฒ์์๋ brute-force ํฑํ ๋ฐฉ๋ฒ ์ ์ฉ. ๊ทธ๋ฌ๋ค๊ฐ ์ธ๋ฒ์งธ ์ํ ๋ฐ์ดํฐ์์ ์์ฒญ๋๊ฒ ์๋๊ฐ ์ ํ๋๋ ๊ฒ์ ๋๋. ์ฌํ๊ป์ ๊ฒฝํ์ ์ํ๋ฉด '๋ฌด์ธ๊ฐ ๋ค๋ฅธ ๊ณ์ฐ ๋ฐฉ๋ฒ์ด ์๊ฒ ๊ตฐ' ์ด๋ผ๋ ๊ฐ์ด ์ค๋ค. brute-force ๋ฐฉ๋ฒ์์ ๋ฏธ๋ฆฌ cut ์ ํ ๋ฐฉ๋ฒ์ ์ด๋ฆฌ์ ๋ฆฌ ์๋. (์ฒซ์งธ์๋ฆฌ์ ๋์๋ฆฌ๋ง 1 ๋น๊ต.) ์๊ฐ์ด ์ค์ด๋ค๊ธด ํ๋ 9901 ์์ ์ ๋ํด์ ๊ธ๋ฐฉ ๋ต์ด ๋์ค์ง ์์. 9901 ๋ณด๋ค ํฐ ์์ ๋ ์์๊ฒ์ด๋ผ ํ ๋, ๋ถ๋ช
๊ธ๋ฐฉ ๋๋ผ ๋ฐฉ๋ฒ์ด ์์ ๊ฒ์ด๋ผ๋ ํ์ ์ ๋๋, ์๊ฐ์ด ๋ ์ค๋ฅด์ง ์์.
์ด๋ป๊ฒ ์ ๊ทผํ ๊น ํ๋ค๊ฐ ์ง๊ธ๊น์ง ์ฐ์ต์ฅ์ ์ ์ฐ๊ณ ์์์ ํ์ธ. ์ฐ์ต์ฅ์ ๊บผ๋ด๋ ์๊ฐ 'ํ' ํ๊ณ ๋๋์ด ์ค๋ค.~ ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ์ต์ข
์ฝ๋ ์๋ฃ.
- ์ฐ์ต์ฅ์ ์ ํ ์ซ์ : 1, 11, 111, 1111

์ต์ข ์ฝ๋ ¶
~cpp
import unittest
def isAllOne(aValue):
valueStr = str(aValue)
for each in valueStr:
if each != '1':
return False
return True
def isMultiplyOf(aValue, mulValue):
return aValue % mulValue == 0
def ones(aValue):
theOnes = "1"
while True:
onesValue = int(theOnes)
if isMultiplyOf(onesValue,aValue):
return len(theOnes)
theOnes += "1"
class OnesTest(unittest.TestCase):
def testSmall(self):
self.assertEquals(3, ones(3))
self.assertEquals(6, ones(7))
def testSmall2(self):
self.assertEquals(9, ones(9))
def testLarge(self):
self.assertEquals(12, ones(9901))
def testIsAllOne(self):
self.assert_(isAllOne(1111))
self.assert_(not isAllOne(1112))
def main():
print ones(int(raw_input()))
if __name__=="__main__":
#unittest.main(argv=('','-v'))
main()










