<?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=Slurpys%2F%ED%99%A9%EC%9E%AC%EC%84%A0</id>
	<title>Slurpys/황재선 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=Slurpys%2F%ED%99%A9%EC%9E%AC%EC%84%A0"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Slurpys/%ED%99%A9%EC%9E%AC%EC%84%A0&amp;action=history"/>
	<updated>2026-05-15T08:40:09Z</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=Slurpys/%ED%99%A9%EC%9E%AC%EC%84%A0&amp;diff=39226&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:28, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Slurpys/%ED%99%A9%EC%9E%AC%EC%84%A0&amp;diff=39226&amp;oldid=prev"/>
		<updated>2021-02-07T05:28:02Z</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;== [[Slurpys]] ==&lt;br /&gt;
 import unittest&lt;br /&gt;
 &lt;br /&gt;
 class Slurpys:&lt;br /&gt;
     def __init__(self):&lt;br /&gt;
         self.result = ()&lt;br /&gt;
         &lt;br /&gt;
     def isSlimp(self, aStr):&lt;br /&gt;
         if not aStr: return False&lt;br /&gt;
         if aStr[0] != &amp;#039;A&amp;#039;:&lt;br /&gt;
             return False&lt;br /&gt;
         if len(aStr) == 2 and aStr[1] == &amp;#039;H&amp;#039;:&lt;br /&gt;
             return True&lt;br /&gt;
         else:&lt;br /&gt;
             if aStr[-1] != &amp;#039;C&amp;#039;: return False&lt;br /&gt;
             if aStr[0:2] == &amp;#039;AB&amp;#039; and self.isSlimp(aStr[2:-1]):&lt;br /&gt;
                 return True&lt;br /&gt;
             if aStr[0] == &amp;#039;A&amp;#039; and self.isSlump(aStr[1:-1]):&lt;br /&gt;
                 return True&lt;br /&gt;
         return False&lt;br /&gt;
 &lt;br /&gt;
     def isSlump(self, aStr):&lt;br /&gt;
         if aStr[0] == &amp;#039;D&amp;#039; or aStr[0] == &amp;#039;E&amp;#039;:&lt;br /&gt;
             pass&lt;br /&gt;
         else: return False&lt;br /&gt;
         if aStr[1] != &amp;#039;F&amp;#039;:&lt;br /&gt;
             return False&lt;br /&gt;
         index = 0&lt;br /&gt;
         for ch in aStr[1:]:&lt;br /&gt;
             if ch != &amp;#039;F&amp;#039;:&lt;br /&gt;
                 index = aStr.find(ch,1)&lt;br /&gt;
                 break&lt;br /&gt;
         else: return False&lt;br /&gt;
         if aStr[index] == &amp;#039;G&amp;#039;:&lt;br /&gt;
             return True&lt;br /&gt;
         elif self.isSlump(aStr[index:]):&lt;br /&gt;
             return True&lt;br /&gt;
         return False&lt;br /&gt;
 &lt;br /&gt;
     def isSlurpy(self, aStr):&lt;br /&gt;
         if aStr[-1] != &amp;#039;G&amp;#039;:&lt;br /&gt;
             return False&lt;br /&gt;
         if aStr[0:2] == &amp;#039;AH&amp;#039; and self.isSlump(aStr[2:]):&lt;br /&gt;
             return True&lt;br /&gt;
         else:&lt;br /&gt;
             slump = self.findSlumpStartIndex(aStr)&lt;br /&gt;
             if slump != -1:&lt;br /&gt;
                 return self.isSlimpAndSlump(aStr, slump)&lt;br /&gt;
         return False&lt;br /&gt;
 &lt;br /&gt;
     def findSlumpStartIndex(self, aStr):&lt;br /&gt;
         if aStr.find(&amp;#039;CD&amp;#039;) != -1:&lt;br /&gt;
             return aStr.find(&amp;#039;CD&amp;#039;) + 1&lt;br /&gt;
         elif aStr.find(&amp;#039;CE&amp;#039;) != -1:&lt;br /&gt;
             return aStr.find(&amp;#039;CE&amp;#039;) + 1&lt;br /&gt;
         else: return -1&lt;br /&gt;
 &lt;br /&gt;
     def isSlimpAndSlump(self, aStr, slump):&lt;br /&gt;
         if self.isSlimp(aStr[0:slump]) and self.isSlump(aStr[slump:]):&lt;br /&gt;
             return True&lt;br /&gt;
         return False&lt;br /&gt;
 &lt;br /&gt;
 class SlurpysTestCase(unittest.TestCase):&lt;br /&gt;
     def testSlimp(self):&lt;br /&gt;
         slimp = Slurpys()&lt;br /&gt;
         self.assertEquals(True, slimp.isSlimp(&amp;#039;AH&amp;#039;))&lt;br /&gt;
         self.assertEquals(True, slimp.isSlimp(&amp;#039;ABAHC&amp;#039;))&lt;br /&gt;
         self.assertEquals(True, slimp.isSlimp(&amp;#039;ABABAHCC&amp;#039;))&lt;br /&gt;
         self.assertEquals(True, slimp.isSlimp(&amp;#039;ADFGC&amp;#039;))&lt;br /&gt;
         self.assertEquals(True, slimp.isSlimp(&amp;#039;ADFFFFGC&amp;#039;))&lt;br /&gt;
         self.assertEquals(True, slimp.isSlimp(&amp;#039;ABAEFGCC&amp;#039;))&lt;br /&gt;
         self.assertEquals(True, slimp.isSlimp(&amp;#039;ADFDFGC&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
         self.assertEquals(False, slimp.isSlimp(&amp;#039;ABC&amp;#039;))&lt;br /&gt;
         self.assertEquals(False, slimp.isSlimp(&amp;#039;ABAH&amp;#039;))&lt;br /&gt;
         self.assertEquals(False, slimp.isSlimp(&amp;#039;DFGC&amp;#039;))&lt;br /&gt;
         self.assertEquals(False, slimp.isSlimp(&amp;#039;ABABAHC&amp;#039;))&lt;br /&gt;
         self.assertEquals(False, slimp.isSlimp(&amp;#039;SLIMP&amp;#039;))&lt;br /&gt;
         self.assertEquals(False, slimp.isSlimp(&amp;#039;ADGC&amp;#039;))&lt;br /&gt;
         &lt;br /&gt;
     def testSlump(self):&lt;br /&gt;
         slump = Slurpys()&lt;br /&gt;
         self.assertEquals(True, slump.isSlump(&amp;#039;DFG&amp;#039;))&lt;br /&gt;
         self.assertEquals(True, slump.isSlump(&amp;#039;EFG&amp;#039;))&lt;br /&gt;
         self.assertEquals(True, slump.isSlump(&amp;#039;DFFFFFG&amp;#039;))&lt;br /&gt;
         self.assertEquals(True, slump.isSlump(&amp;#039;DFDFDFDFG&amp;#039;))&lt;br /&gt;
         self.assertEquals(True, slump.isSlump(&amp;#039;DFEFFFFFG&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
         self.assertEquals(False, slump.isSlump(&amp;#039;DFEFF&amp;#039;))&lt;br /&gt;
         self.assertEquals(False, slump.isSlump(&amp;#039;EFAHG&amp;#039;))&lt;br /&gt;
         self.assertEquals(False, slump.isSlump(&amp;#039;DEFG&amp;#039;))&lt;br /&gt;
         self.assertEquals(False, slump.isSlump(&amp;#039;DG&amp;#039;))&lt;br /&gt;
         self.assertEquals(False, slump.isSlump(&amp;#039;EFFFFDG&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
     def testSlurpy(self):&lt;br /&gt;
         slurpy = Slurpys()&lt;br /&gt;
         self.assertEquals(True, slurpy.isSlurpy(&amp;#039;AHDFG&amp;#039;))&lt;br /&gt;
         self.assertEquals(True, slurpy.isSlurpy(&amp;#039;ADFGCDFFFFFG&amp;#039;))&lt;br /&gt;
         self.assertEquals(True, slurpy.isSlurpy(&amp;#039;ABAEFGCCDFEFFFFFG&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
         self.assertEquals(False, slurpy.isSlurpy(&amp;#039;AHDFGA&amp;#039;))&lt;br /&gt;
         self.assertEquals(False, slurpy.isSlurpy(&amp;#039;DFGA5H&amp;#039;))&lt;br /&gt;
         self.assertEquals(False, slurpy.isSlurpy(&amp;#039;ABABCC&amp;#039;))&lt;br /&gt;
     &lt;br /&gt;
 def main():&lt;br /&gt;
     slurpy = Slurpys()&lt;br /&gt;
     while True:&lt;br /&gt;
         size = input()&lt;br /&gt;
         if 1 &amp;amp;lt;= size &amp;amp;lt;= 10:&lt;br /&gt;
             break&lt;br /&gt;
         else: print &amp;#039;input size again&amp;#039;&lt;br /&gt;
     for num in range(size):&lt;br /&gt;
         while True:&lt;br /&gt;
             string = raw_input()&lt;br /&gt;
             if 1 &amp;amp;lt;= len(string) &amp;amp;lt;= 60:&lt;br /&gt;
                 break&lt;br /&gt;
             else: print &amp;#039;input string again&amp;#039;&lt;br /&gt;
         if slurpy.isSlurpy(string):&lt;br /&gt;
             slurpy.result += &amp;#039;YES&amp;#039;,&lt;br /&gt;
         else: slurpy.result += &amp;#039;NO&amp;#039;,&lt;br /&gt;
 &lt;br /&gt;
     print &amp;#039;SLURPYS OUTPUT&amp;#039;&lt;br /&gt;
     for num in range(size):&lt;br /&gt;
         print slurpy.result[num]&lt;br /&gt;
     print &amp;#039;END OF OUTPUT&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
     #unittest.main(argv=(&amp;#039;&amp;#039;, &amp;#039;-v&amp;#039;))&lt;br /&gt;
     main()&lt;br /&gt;
&lt;br /&gt;
== 쓰레드 ==&lt;br /&gt;
* 테스트와 함께하니 재밌다. 문자열의 순서를 따지느라 if-else를 남발했는데 리펙토링하기 참 힘들다 -- 재선&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Slurpys]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>