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