์ ๊ทผ ¶
์ฒ์ ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ๋๋ต 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()