<?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=ClassifyByAnagram%2F%EB%B0%95%EC%9D%91%EC%A3%BC</id>
	<title>ClassifyByAnagram/박응주 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=ClassifyByAnagram%2F%EB%B0%95%EC%9D%91%EC%A3%BC"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=ClassifyByAnagram/%EB%B0%95%EC%9D%91%EC%A3%BC&amp;action=history"/>
	<updated>2026-05-15T10:01:42Z</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=ClassifyByAnagram/%EB%B0%95%EC%9D%91%EC%A3%BC&amp;diff=30271&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:22, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=ClassifyByAnagram/%EB%B0%95%EC%9D%91%EC%A3%BC&amp;diff=30271&amp;oldid=prev"/>
		<updated>2021-02-07T05:22:53Z</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;상대 속도 약 1.35. test2와 test3의 간격이 너무 크다. 작성하는데 얼마나 걸리는 지 또 안재어봤다. :(&lt;br /&gt;
_signature를 그냥 쉘에서 해봤었는데 _signature를 테스트로 넣었어야 했다.&lt;br /&gt;
&lt;br /&gt;
 import unittest&lt;br /&gt;
 &lt;br /&gt;
 class Anagram:&lt;br /&gt;
     def __init__(self):&lt;br /&gt;
         self._anagrams = {}&lt;br /&gt;
     def add(self, word):&lt;br /&gt;
         s = self._signature(word)&lt;br /&gt;
         if self._anagrams.has_key(s):&lt;br /&gt;
             self._anagrams[s].append(word)&lt;br /&gt;
         else:&lt;br /&gt;
             self._anagrams[s] = [word]&lt;br /&gt;
     def anagrams(self):&lt;br /&gt;
         return self._anagrams.values()&lt;br /&gt;
     def _signature(self, word):&lt;br /&gt;
         s = list(word)&lt;br /&gt;
         s.sort()&lt;br /&gt;
         return &amp;quot;&amp;quot;.join(s)&lt;br /&gt;
 &lt;br /&gt;
 class AnagramTestCase(unittest.TestCase):&lt;br /&gt;
     def test1(self):&lt;br /&gt;
         anagram = Anagram()&lt;br /&gt;
         anagram.add(&amp;#039;abc&amp;#039;)&lt;br /&gt;
         self.assert_([&amp;#039;abc&amp;#039;] in anagram.anagrams())&lt;br /&gt;
     def test2(self):&lt;br /&gt;
         anagram = Anagram()&lt;br /&gt;
         anagram.add(&amp;#039;abc&amp;#039;)&lt;br /&gt;
         anagram.add(&amp;#039;bac&amp;#039;)&lt;br /&gt;
         self.assert_([&amp;#039;abc&amp;#039;, &amp;#039;bac&amp;#039;] in anagram.anagrams())&lt;br /&gt;
     def test3(self):&lt;br /&gt;
         anagram = Anagram()&lt;br /&gt;
         anagram.add(&amp;#039;efg&amp;#039;)&lt;br /&gt;
         anagram.add(&amp;#039;abc&amp;#039;)&lt;br /&gt;
         anagram.add(&amp;#039;bac&amp;#039;)&lt;br /&gt;
         self.assert_([&amp;#039;abc&amp;#039;, &amp;#039;bac&amp;#039;] in anagram.anagrams())&lt;br /&gt;
         self.assert_([&amp;#039;efg&amp;#039;] in anagram.anagrams())&lt;br /&gt;
         &lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
     #unittest.main(argv=(&amp;#039;&amp;#039;, &amp;#039;-v&amp;#039;))&lt;br /&gt;
     import sys&lt;br /&gt;
     import time&lt;br /&gt;
     t1 = time.clock()&lt;br /&gt;
     anagram = Anagram()&lt;br /&gt;
     for word in sys.stdin:&lt;br /&gt;
         anagram.add(word.strip())&lt;br /&gt;
     for words in anagram.anagrams():&lt;br /&gt;
         print &amp;#039; &amp;#039;.join(words)&lt;br /&gt;
     t2 = time.clock()&lt;br /&gt;
     print t2 - t1&lt;br /&gt;
&lt;br /&gt;
P3 700MGhz 384MB Win2000 Python 2.2.1에서 17만 단어로 실행하면 8.8초.&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>