<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=JollyJumpers%2FLeonardong</id>
	<title>JollyJumpers/Leonardong - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=JollyJumpers%2FLeonardong"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=JollyJumpers/Leonardong&amp;action=history"/>
	<updated>2026-05-14T17:51:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=JollyJumpers/Leonardong&amp;diff=33295&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=JollyJumpers/Leonardong&amp;diff=33295&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; import sys&lt;br /&gt;
 class JollyJumper:&lt;br /&gt;
     def statementForSeries( self, aSeries ):&lt;br /&gt;
         if self.checkJolly( aSet = self.getSetOfDiffence( aSeries[1:] ),&lt;br /&gt;
                             aN = aSeries[0] ):&lt;br /&gt;
             return &amp;quot;Jolly&amp;quot;&lt;br /&gt;
         return &amp;quot;Not Jolly&amp;quot;&lt;br /&gt;
     def checkJolly( self, aSet, aN ):&lt;br /&gt;
         for i in range( 1, aN ):&lt;br /&gt;
             if i not in aSet:&lt;br /&gt;
                 return False&lt;br /&gt;
         return True&lt;br /&gt;
     def getSetOfDiffence( self, aSeries ):&lt;br /&gt;
         resultSet = {}&lt;br /&gt;
         for i in range( len(aSeries) - 1 ):&lt;br /&gt;
             resultSet[abs(aSeries[i + 1]-aSeries[i])] = &amp;quot;exist&amp;quot;&lt;br /&gt;
         return resultSet&lt;br /&gt;
     def run():&lt;br /&gt;
         while True:&lt;br /&gt;
             inputString = sys.stdin.readline()&lt;br /&gt;
             seriesChar = inputString.split()&lt;br /&gt;
             if seriesChar[0] is &amp;#039;0&amp;#039;:&lt;br /&gt;
                 break&lt;br /&gt;
             seriesInt = []&lt;br /&gt;
             for char in seriesChar:&lt;br /&gt;
                 seriesInt.append( int(char) )&lt;br /&gt;
             print JollyJumper().statementForSeries( seriesInt )&lt;br /&gt;
     run = staticmethod(run)&lt;br /&gt;
 #########################################################################           &lt;br /&gt;
 import unittest&lt;br /&gt;
 &lt;br /&gt;
 class JollyJumperTestCase(unittest.TestCase):&lt;br /&gt;
     def setUp(self):&lt;br /&gt;
         self.jj = JollyJumper()&lt;br /&gt;
     def test12(self):&lt;br /&gt;
         self.assertEquals(&amp;quot;Jolly&amp;quot;,&lt;br /&gt;
                           self.jj.statementForSeries( aSeries = [2,6,7] ) )&lt;br /&gt;
     def test13(self):&lt;br /&gt;
         self.assertEquals(&amp;quot;Not Jolly&amp;quot;,&lt;br /&gt;
                           self.jj.statementForSeries( aSeries = [2,1,3] ) )&lt;br /&gt;
     def testCheckJolly(self):&lt;br /&gt;
         self.assertEquals(True,&lt;br /&gt;
                           self.jj.checkJolly(&lt;br /&gt;
                               aSet = {3:&amp;quot;exist&amp;quot;, 2:&amp;quot;exist&amp;quot;, 1:&amp;quot;exist&amp;quot;},&lt;br /&gt;
                               aN = 4) )&lt;br /&gt;
         self.assertEquals(True,&lt;br /&gt;
                           self.jj.checkJolly(&lt;br /&gt;
                               aSet = {1:&amp;quot;exist&amp;quot;},&lt;br /&gt;
                               aN = 2) )&lt;br /&gt;
     def testGetSetOfDiffernce(self):&lt;br /&gt;
         self.assertEquals( str(self.jj.getSetOfDiffence( aSeries = [5,6,8] )),&lt;br /&gt;
                            str({2:&amp;quot;exist&amp;quot;, 1:&amp;quot;exist&amp;quot;}) )&lt;br /&gt;
         self.assertEquals( str(self.jj.getSetOfDiffence( aSeries = [7,6,4] )),&lt;br /&gt;
                            str({2:&amp;quot;exist&amp;quot;, 1:&amp;quot;exist&amp;quot;}) )&lt;br /&gt;
     def testSample(self):&lt;br /&gt;
         series = [4, 1,4,2,3]&lt;br /&gt;
         self.assertEquals(&amp;quot;Jolly&amp;quot;, self.jj.statementForSeries( series ) )&lt;br /&gt;
         series = [4, 5, 1, 4, 2, 3]&lt;br /&gt;
         self.assertEquals(&amp;quot;Jolly&amp;quot;, self.jj.statementForSeries( series ) )&lt;br /&gt;
         series = [5, 5, 1, 4, 2, -1, 6]&lt;br /&gt;
         self.assertEquals(&amp;quot;Not Jolly&amp;quot;, self.jj.statementForSeries( series ) )&lt;br /&gt;
 &lt;br /&gt;
 #########################################################################&lt;br /&gt;
 if __name__ == &amp;#039;__main__&amp;#039;: &lt;br /&gt;
 ##    unittest.main()&lt;br /&gt;
     JollyJumper.run()&lt;br /&gt;
== Thread ==&lt;br /&gt;
처음에 리스트에 차를 집어넣은 후 정렬하려 했다가 집합 개념이 떠올라 그 쪽으로 해결했다. statementForSeries메서드 부분에 있던 CheckJolly메서드를 따로 테스트하면서 ExtractMethod를 하게 되었고, 차가 음수인 경우도 테스트를 통해 알게되었다. 보폭이 아직 좁지만 술술 진행한 문제이다.&lt;br /&gt;
&lt;br /&gt;
바뀐 요구사항에 맞게 수정하는데 1분 30초가 걸렸다. 파이썬이 상당히 유연하다는 느낌이 강하게 들었다. 러너부분은 마음에 안 든다. &lt;br /&gt;
&lt;br /&gt;
실제 코딩에 들어가기 전에 생각하는 시간을 가진다. [[생각하는프로그래밍]]에서 읽은 게으른 프로그래머가 될 필요가 있겠다. 가능한 디자인 공간을 5분이라도 탐구하고 그 가운데 가장 괜찮은 놈으로 시도해봐야겠다. --[[Leonardong]]&lt;br /&gt;
----&lt;br /&gt;
[[JollyJumpers]], [[AOI]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>