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.0094 sec