{"id":2243,"date":"2009-10-12T18:28:29","date_gmt":"2009-10-12T18:28:29","guid":{"rendered":"http:\/\/192.168.0.71:9090\/?p=1945"},"modified":"2009-10-12T18:28:29","modified_gmt":"2009-10-12T18:28:29","slug":"e-mail-%eb%b6%84%ec%84%9d%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/talsu.net\/?p=2243","title":{"rendered":"E-mail \ubd84\uc11d\uae30"},"content":{"rendered":"<p>\uc774\uba54\uc77c \ub9ac\uc2a4\ud2b8\uac00 \uc788\uc744 \ub54c \uc815\ub82c \ud560 \uc218 \uc788\uace0 \uc11c\ube44\uc2a4 \uc81c\uacf5\ubcc4\ub85c \ud1b5\uacc4\ub97c \ub0bc \uc218 \uc788\ub2e4. \ubaa8 \ud68c\uc0ac\uc5d0\uc11c \ub2e8\uccb4 \uba54\uc77c\uc744 \ubcf4\ub0bc\ub54c \uc2e4\uc218\ub85c \uc228\uc740 \ucc38\uc870\ub97c \ud558\uc9c0 \uc54a\uace0 \ubcf4\ub0b4 \uc218\ubc31\uac1c\uc758 E-mail \uc8fc\uc18c\ub97c \ud655\ubcf4 \ud558\uc600\ub294\ub370 \uadf8 \ub370\uc774\ud130\ub85c \uc774\ucabd \ubd84\uc57c\uc5d0 \ubab8\uc744 \ub2f4\uace0 \uc788\ub294 \uc0ac\ub78c\ub4e4\uc774 \uc0ac\uc6a9\ud558\ub294 E-mail\uc11c\ube44\uc2a4 \uc5c5\uccb4\uc758 \uc21c\uc704\ub97c \uad6c\ud558\uace0 \uc2f6\uc5b4 \uc84c\ub2e4.<br \/>\n&nbsp;<\/p>\n<p>\n\ub3cc\ub824\ubcf8 \uacb0\uacfc<\/p>\n<p>Total : 549<br \/>\n<br \/>\nnaver.com : 274<br \/>\nnate.com : 78<br \/>\nhanmail.net : 63<br \/>\ngmail.com : 48<br \/>\nhotmail.com : 37<br \/>\nparan.com : 6<br \/>\ndaum.net : 5<br \/>\nlycos.co.kr : 4<br \/>\nkorea.ac.kr : 4<br \/>\ncyworld.com : 3<br \/>\nempal.com : 3<br \/>\nsnu.ac.kr : 2<br \/>\nnetsgo.com : 2<br \/>\nkw.ac.kr : 2<br \/>\nhanafos.com : 2<br \/>\nkonkuk.ac.kr : 1<br \/>\nlawliet.biz : 1<br \/>\nkaist.ac.kr : 1<br \/>\nmsn.com : 1<br \/>\nnait.com : 1<br \/>\nhufs.ac.kr : 1<br \/>\nhanyang.ac.kr : 1<br \/>\nnaver.om : 1<br \/>\nhanmai.net : 1<br \/>\npostech.ac.kr : 1<br \/>\npusan.ac.kr : 1<br \/>\nhamail.net : 1<br \/>\nsogang.ac.kr : 1<br \/>\ntalsu.net : 1<\/p>\n<p>\uba54\uc77c \uc8fc\uc18c\ub97c \uc798\ubabb\uc801\uc740 \ubd84\ub4e4 \uba87\ubd84 \uc788\uc5c8\uace0 nate\uba54\uc77c\uc774 \uc800\ub807\uac8c \ub9ce\uc774 \uc0ac\uc6a9 \ub420 \uc904\uc740 \ubab0\ub790\ub2e4.. gmail\uc740 \uc0dd\uac01 \ubcf4\ub2e4 \ub9ce\uc774 \uc0ac\uc6a9 \ud558\uace0 \uc788\ub2e4.<br \/>\n\ud559\uad50 \uba54\uc77c \uc4f0\ub294 \ubd84\ub3c4 \ub9ce\uc774 \uacc4\uc2dc\uace0..<\/p>\n<pre class=\"lang:c++ decode:true\">\n#include <iostream>\n#include <vector>\n#include <sstream>\n#include <algorithm>\n#include <cctype>\n\nstruct Email {\n\tstd::string id;\n\tstd::string service;\n\n\tstd::string toString() {\n\t\treturn id + \"@\" + service;\n\t}\n};\n\nstruct EmailPair {\n\tstd::string service;\n\tint number;\n};\n\nclass CompareByService {\npublic:\n\tbool operator()(const Email& lhs, const Email& rhs) {\n\t\treturn lhs.service < rhs.service;\n\t}\n};\n\nclass CompareByNumber {\npublic:\n\tbool operator()(const EmailPair&#038; lhs, const EmailPair&#038; rhs) {\n\t\treturn lhs.number > rhs.number;\n\t}\n};\nclass EmailList {\n\tstd::vector<email> mails;\npublic:\n\tvoid input(std::string str) {\n\n\t\tstd::stringstream ss(str);\n\t\tstd::string mailStr;\n\t\tss >> mailStr;\n\t\tunsigned int index = 0;\n\t\tbool find = false;\n\t\tfor (; index < mailStr.size(); ++index) {\n\t\t\tif (mailStr[index] == '@') {\n\t\t\t\tfind = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (find) {\n\t\t\tEmail mail;\n\t\t\tmail.id = mailStr.substr(0, index);\n\t\t\tindex++;\n\t\t\tmail.service = mailStr.substr(index, mailStr.size() - index);\n\t\t\tstd::transform(mail.service.begin(), mail.service.end(),\n\t\t\t\t\tmail.service.begin(), tolower);\n\t\t\tmails.push_back(mail);\n\t\t}\n\t}\n\n\tvoid printList() {\n\t\tfor (std::vector<email>::iterator it = mails.begin(); it != mails.end(); ++it) {\n\t\t\tstd::cout << (*it).toString() << std::endl;\n\t\t}\n\t}\n\n\tvoid sortByService() {\n\t\tstd::sort(mails.begin(), mails.end(), CompareByService());\n\t}\n\n\tvoid analysis() {\n\t\tstd::cout << \"Total : \" << mails.size() << std::endl;\n\t\tsortByService();\n\t\tstd::string mail = (*(mails.begin())).service;\n\t\tstd::vector<std::string> services;\n\t\tstd::vector<int> numbers;\n\t\tstd::vector<emailPair> data;\n\t\tint count = 1;\n\n\t\tfor (std::vector<email>::iterator it = mails.begin(); it != mails.end(); ++it) {\n\n\t\t\tif (mail == (*it).service) {\n\t\t\t\t++count;\n\t\t\t} else {\n\t\t\t\tEmailPair serviceData;\n\t\t\t\tserviceData.number = count;\n\t\t\t\tserviceData.service = mail;\n\t\t\t\tdata.push_back(serviceData);\n\t\t\t\tmail = (*it).service;\n\t\t\t\tcount = 1;\n\t\t\t}\n\n\t\t}\n\n\t\tstd::sort(data.begin(), data.end(), CompareByNumber());\n\n\t\tfor (std::vector<emailPair>::iterator it = data.begin(); it\n\t\t\t\t!= data.end(); ++it) {\n\t\t\tstd::cout << (*it).service << \" : \" << (*it).number << std::endl;\n\t\t}\n\t}\n\n};\n\nint main() {\n\n\tstd::string buffer;\n\tEmailList emailList;\n\twhile (true) {\n\t\tstd::getline(std::cin, buffer);\n\t\tif (buffer.empty())\n\t\t\tbreak;\n\t\temailList.input(buffer);\n\t}\n\temailList.analysis();\n\n\treturn 0;\n}\n<\/pre>\n<p>\uc2e4\uc218\ub3c4 \ud560\uc218 \uc788\ub294\uac70\uc9c0 \ubb50.. \uadf8\ub798\ub3c4 \ub355\ubd84\uc5d0 \uc7a0\uae50\uc774\ub098\ub9c8 \uc7ac\ubbf8 \uc788\ub294 \uc2dc\uac04\uc744 \ubcf4\ub0c8\ub2e4!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc774\uba54\uc77c \ub9ac\uc2a4\ud2b8\uac00 \uc788\uc744 \ub54c \uc815\ub82c \ud560 \uc218 \uc788\uace0 \uc11c\ube44\uc2a4 \uc81c\uacf5\ubcc4\ub85c \ud1b5\uacc4\ub97c \ub0bc \uc218 \uc788\ub2e4. \ubaa8 \ud68c\uc0ac\uc5d0\uc11c \ub2e8\uccb4 \uba54\uc77c\uc744 \ubcf4\ub0bc\ub54c \uc2e4\uc218\ub85c \uc228\uc740 \ucc38\uc870\ub97c \ud558\uc9c0 \uc54a\uace0 \ubcf4\ub0b4 \uc218\ubc31\uac1c\uc758 E-mail \uc8fc\uc18c\ub97c \ud655\ubcf4 \ud558\uc600\ub294\ub370 \uadf8 \ub370\uc774\ud130\ub85c \uc774\ucabd \ubd84\uc57c\uc5d0 \ubab8\uc744 \ub2f4\uace0 \uc788\ub294 \uc0ac\ub78c\ub4e4\uc774 \uc0ac\uc6a9\ud558\ub294 E-mail\uc11c\ube44\uc2a4 \uc5c5\uccb4\uc758 \uc21c\uc704\ub97c \uad6c\ud558\uace0 \uc2f6\uc5b4 \uc84c\ub2e4. &nbsp; \ub3cc\ub824\ubcf8 \uacb0\uacfc Total : 549 naver.com : 274 nate.com [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[8],"tags":[67,104,106,175,358],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pXV5a-Ab","_links":{"self":[{"href":"https:\/\/talsu.net\/index.php?rest_route=\/wp\/v2\/posts\/2243"}],"collection":[{"href":"https:\/\/talsu.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/talsu.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/talsu.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/talsu.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2243"}],"version-history":[{"count":0,"href":"https:\/\/talsu.net\/index.php?rest_route=\/wp\/v2\/posts\/2243\/revisions"}],"wp:attachment":[{"href":"https:\/\/talsu.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/talsu.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/talsu.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}