U E D R , A S I H C RSS

Jolly Jumpers/Leonardong

~cpp 
import sys
class JollyJumper:
    def statementForSeries( self, aSeries ):
        if self.checkJolly( aSet = self.getSetOfDiffence( aSeries[1:] ),
                            aN = aSeries[0] ):
            return "Jolly"
        return "Not Jolly"
    def checkJolly( self, aSet, aN ):
        for i in range( 1, aN ):
            if i not in aSet:
                return False
        return True
    def getSetOfDiffence( self, aSeries ):
        resultSet = {}
        for i in range( len(aSeries) - 1 ):
            resultSet[abs(aSeries[i + 1]-aSeries[i])] = "exist"
        return resultSet
    def run():
        while True:
            inputString = sys.stdin.readline()
            seriesChar = inputString.split()
            if seriesChar[0] is '0':
                break
            seriesInt = []
            for char in seriesChar:
                seriesInt.append( int(char) )
            print JollyJumper().statementForSeries( seriesInt )
    run = staticmethod(run)
#########################################################################           
import unittest

class JollyJumperTestCase(unittest.TestCase):
    def setUp(self):
        self.jj = JollyJumper()
    def test12(self):
        self.assertEquals("Jolly",
                          self.jj.statementForSeries( aSeries = [2,6,7] ) )
    def test13(self):
        self.assertEquals("Not Jolly",
                          self.jj.statementForSeries( aSeries = [2,1,3] ) )
    def testCheckJolly(self):
        self.assertEquals(True,
                          self.jj.checkJolly(
                              aSet = {3:"exist", 2:"exist", 1:"exist"},
                              aN = 4) )
        self.assertEquals(True,
                          self.jj.checkJolly(
                              aSet = {1:"exist"},
                              aN = 2) )
    def testGetSetOfDiffernce(self):
        self.assertEquals( str(self.jj.getSetOfDiffence( aSeries = [5,6,8] )),
                           str({2:"exist", 1:"exist"}) )
        self.assertEquals( str(self.jj.getSetOfDiffence( aSeries = [7,6,4] )),
                           str({2:"exist", 1:"exist"}) )
    def testSample(self):
        series = [4, 1,4,2,3]
        self.assertEquals("Jolly", self.jj.statementForSeries( series ) )
        series = [4, 5, 1, 4, 2, 3]
        self.assertEquals("Jolly", self.jj.statementForSeries( series ) )
        series = [5, 5, 1, 4, 2, -1, 6]
        self.assertEquals("Not Jolly", self.jj.statementForSeries( series ) )

#########################################################################
if __name__ == '__main__': 
##    unittest.main()
    JollyJumper.run()

Thread

ฒ˜Œ— ฆฌŠคŠธ— ฐจฅผ ง‘–„ฃ€ ›„  • ฌ•˜ ค –ˆ‹ค๊ฐ€ ง‘•ฉ ๊ฐœ… – ˜ฌผ ๊ทธ œผกœ •๊ฒฐ–ˆ‹ค. statementForSeriesฉ”„œ“œ €ถ„— žˆ˜ CheckJollyฉ”„œ“œฅผ ”ฐกœ …ŒŠคŠธ•˜„œ ExtractMethodฅผ •˜๊ฒŒ ˜—ˆ๊ณ , ฐจ๊ฐ€ Œˆ˜ธ ๊ฒฝšฐ„ …ŒŠคŠธฅผ †ต• •Œ๊ฒŒ˜—ˆ‹ค. ญ •„ง ข€งŒ ˆ ˆ  ง„–‰•œ ฌธ œ‹ค.

ฐ”€ š”๊ตฌ‚ฌ•— งž๊ฒŒ ˆ˜ ••˜Š”ฐ 1ถ„ 30ˆ๊ฐ€ ๊ฑธ ธ‹ค. ŒŒฌ ƒ‹นžˆ œ —ฐ•˜‹คŠ” А‚Œ ๊ฐ••˜๊ฒŒ “ค—ˆ‹ค. Ÿฌ„ˆ€ถ„€ งˆŒ— •ˆ “ ‹ค.

‹ค œ ฝ””ฉ— “ค–๊ฐ€๊ธฐ  „— ƒ๊ฐ•˜Š” ‹œ๊ฐ„„ ๊ฐ€ง„‹ค. ƒ๊ฐ•˜Š””„กœ๊ทธž˜ฐ—„œ ฝ€ ๊ฒŒœผฅธ ”„กœ๊ทธž˜จธ๊ฐ€   •„š”๊ฐ€ žˆ๊ฒ ‹ค. ๊ฐ€Šฅ•œ ””žธ ๊ณต๊ฐ„„ 5ถ„ผ„ ƒ๊ตฌ•˜๊ณ  ๊ทธ ๊ฐ€šฐ ๊ฐ€žฅ ๊œฐฎ€ †ˆœผกœ ‹œ„••ผ๊ฒ ‹ค. --Leonardong

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:34
Processing time 0.0086 sec