๋ฌธ์์ด ๋ชฉ๋ก์ด ์ ๊ณต๋๋ฉด ๊ฐ ์์น์ ๊ฐ ๋ฌธ์์ด์์ ๋ฌธ์๋ฅผ ๊ฐ์ ธ ์์ ASCII ์์๋ก ์ ๋ ฌํ๊ณ ์ถ๋ ฅ ๋ฌธ์์ด์ ์์๋๋ก ์ถ๊ฐํ์ฌ ๊ตฌ์ฑ๋ ๋จ์ผ ๋ฌธ์์ด์ ์ถ๋ ฅํ์ญ์์ค. ์ฆ, n์
๋ ฅ ๋ฌธ์์ด n์ ๊ฒฝ์ฐ ์ถ๋ ฅ์ ์ฒซ ๋ฒ์งธ ๋ฌธ์๋ ์์๋ก ์ ๋ ฌ ๋ ๊ฐ ์
๋ ฅ์ ์ฒซ ๋ฒ์งธ n๋ฌธ์๊ฐ๋๊ณ , ์ถ๋ ฅ์ ๋ ๋ฒ์งธ ๋ฌธ์๋ ์์๋ก ์ ๋ ฌ ๋ ๊ฐ ์
๋ ฅ์ ๋ ๋ฒ์งธ ๋ฌธ์๊ฐ๋ฉ๋๋ค. ์ ์์. ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ๋ชจ๋ ๊ฐ๊ณ ํ๋ ์ด์์ ๋ฌธ์์ด์ด ์๋ค๊ณ ๊ฐ์ ํ ์ ์์ต๋๋ค. ๋ชจ๋ ๋ฌธ์์ด์ ASCII ์ธ์ ๊ฐ๋ฅ ๋ฌธ์ (๋จ์ด 32-127)๋ก๋ง ๊ตฌ์ฑ๋ฉ๋๋ค.
ํ์ด์ฌ์์ ์ฐธ์กฐ ๊ตฌํ ( ์จ๋ผ์ธ ์๋ ) :
def stringshuffle(strings):
res = ''
for i in range(len(strings[0])):
res += ''.join(sorted([s[i] for s in strings],key=ord))
return res
์ :
"abc","cba" -> "acbbac"
"HELLO","world","!!!!!" -> "!Hw!Eo!Lr!Ll!Od"
๊ท์น
- ํ์ค ํ์ ์ ๊ธ์ง๋์ด ์์ต๋๋ค
- ์ด๊ฒ์ code-golf ์ด๋ฏ๋ก ๋ฐ์ดํธ ๋จ์์ ์ต๋จ ๋ต๋ณ์ด ์น๋ฆฌํฉ๋๋ค.
๋ฆฌ๋ ๋ณด๋
์ด ๊ฒ์๋ฌผ์ ํ๋จ์์๋ ์คํ ์ค ๋ํซ์ ๋ต๋ณ a) ์ธ์ด๋ณ๋ก ๊ฐ์ฅ ์งง์ ์๋ฃจ์ ๋ชฉ๋ก์ผ๋ก, b) ์ ์ฒด ๋ฆฌ๋ ๋ณด๋๋ก ๋ต๋ณ์์ ๋ฆฌ๋ ๋ณด๋๋ฅผ ์์ฑํฉ๋๋ค.
๋ต๋ณ์ด ํ์๋๋๋กํ๋ ค๋ฉด ๋ค์ ๋งํฌ ๋ค์ด ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ํค๋ ๋ผ์ธ์ผ๋ก ๋ต๋ณ์ ์์ํ์ญ์์ค.
## Language Name, N bytes
N์ ์ถ๋ฌผ์ ํฌ๊ธฐ๋ ์ด๋์ ์์ต๋๊น ? ๋น์ ์ด ๋น์ ์ ์ ์๋ฅผ ํฅ์์ํฌ ๊ฒฝ์ฐ์, ๋น์ ์ ํ ์ ์์ต๋๋ค ๋ฅผ ํตํด ๋์ ๋๋์ ์ํด, ํค๋ ๋ผ์ธ์ ์ค๋๋ ์ ์๋ฅผ ์ ์งํ๋ค. ์๋ฅผ ๋ค์ด :
## Ruby, <s>104</s> <s>101</s> 96 bytes
ํค๋์ ์ฌ๋ฌ ๊ฐ์ ์ซ์๋ฅผ ํฌํจ ์ํค๋ ค๋ฉด (์ : ์ ์๊ฐ ๋ ํ์ผ์ ํฉ๊ณ์ด๊ฑฐ๋ ์ธํฐํ๋ฆฌํฐ ํ๋๊ทธ ํ๋ํฐ๋ฅผ ๋ณ๋๋ก ๋์ดํ๋ ค๋ ๊ฒฝ์ฐ) ์ค์ ์ ์๊ฐ ํค๋ ์ ๋ง์ง๋ง ์ซ์ ์ธ์ง ํ์ธํ์ญ์์ค .
## Perl, 43 + 2 (-p flag) = 45 bytes
์ธ์ด ์ด๋ฆ์ ๋งํฌ๋ก ๋ง๋ค๋ฉด ์ค ๋ํซ์ ํ์๋ฉ๋๋ค.
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
<style>body { text-align: left !important} #answer-list { padding: 10px; width: 290px; float: left; } #language-list { padding: 10px; width: 290px; float: left; } table thead { font-weight: bold; } table td { padding: 5px; }</style><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="language-list"> <h2>Shortest Solution by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr> </thead> <tbody id="languages"> </tbody> </table> </div> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr> </thead> <tbody id="answers"> </tbody> </table> </div> <table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table><script>var QUESTION_ID = 64526; var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk"; var OVERRIDE_USER = 45941; var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page; function answersUrl(index) { return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER; } function commentUrl(index, answers) { return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER; } function getAnswers() { jQuery.ajax({ url: answersUrl(answer_page++), method: "get", dataType: "jsonp", crossDomain: true, success: function (data) { answers.push.apply(answers, data.items); answers_hash = []; answer_ids = []; data.items.forEach(function(a) { a.comments = []; var id = +a.share_link.match(/\d+/); answer_ids.push(id); answers_hash[id] = a; }); if (!data.has_more) more_answers = false; comment_page = 1; getComments(); } }); } function getComments() { jQuery.ajax({ url: commentUrl(comment_page++, answer_ids), method: "get", dataType: "jsonp", crossDomain: true, success: function (data) { data.items.forEach(function(c) { if (c.owner.user_id === OVERRIDE_USER) answers_hash[c.post_id].comments.push(c); }); if (data.has_more) getComments(); else if (more_answers) getAnswers(); else process(); } }); } getAnswers(); var SCORE_REG = /<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/; var OVERRIDE_REG = /^Override\s*header:\s*/i; function getAuthorName(a) { return a.owner.display_name; } function process() { var valid = []; answers.forEach(function(a) { var body = a.body; a.comments.forEach(function(c) { if(OVERRIDE_REG.test(c.body)) body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>'; }); var match = body.match(SCORE_REG); if (match) valid.push({ user: getAuthorName(a), size: +match[2], language: match[1], link: a.share_link, }); else console.log(body); }); valid.sort(function (a, b) { var aB = a.size, bB = b.size; return aB - bB }); var languages = {}; var place = 1; var lastSize = null; var lastPlace = 1; valid.forEach(function (a) { if (a.size != lastSize) lastPlace = place; lastSize = a.size; ++place; var answer = jQuery("#answer-template").html(); answer = answer.replace("{{PLACE}}", lastPlace + ".") .replace("{{NAME}}", a.user) .replace("{{LANGUAGE}}", a.language) .replace("{{SIZE}}", a.size) .replace("{{LINK}}", a.link); answer = jQuery(answer); jQuery("#answers").append(answer); var lang = a.language; lang = jQuery('<a>'+lang+'</a>').text(); languages[lang] = languages[lang] || {lang: a.language, lang_raw: lang.toLowerCase(), user: a.user, size: a.size, link: a.link}; }); var langs = []; for (var lang in languages) if (languages.hasOwnProperty(lang)) langs.push(languages[lang]); langs.sort(function (a, b) { if (a.lang_raw > b.lang_raw) return 1; if (a.lang_raw < b.lang_raw) return -1; return 0; }); for (var i = 0; i < langs.length; ++i) { var language = jQuery("#language-template").html(); var lang = langs[i]; language = language.replace("{{LANGUAGE}}", lang.lang) .replace("{{NAME}}", lang.user) .replace("{{SIZE}}", lang.size) .replace("{{LINK}}", lang.link); language = jQuery(language); jQuery("#languages").append(language); } }</script>
๋ต๋ณ
GS2 , 4 ๋ฐ์ดํธ
*รโ /
STDIN์์ ์ค ๋ฐ๊ฟ์ผ๋ก ๊ตฌ๋ถ ๋ ๋ฌธ์์ด์ ์ฝ์ต๋๋ค.
์์ค ์ฝ๋๋ CP437 ์ธ์ฝ๋ฉ์ ์ฌ์ฉํฉ๋๋ค . ์จ๋ผ์ธ์ผ๋ก ์ฌ์ฉํด๋ณด์ญ์์ค!
์์ด์
$ xxd -r -ps <<< '2a 9a fe 2f' > zip-sort.gs2
$ echo -e 'HELLO\nworld\n!!!!!' | gs2 zip-sort.gs2
!Hw!Eo!Lr!Ll!Od
์๋ ์๋ฆฌ
* Split the input into the array of its lines.
ร Zip the resulting array.
โ Map the rest of the program over the resulting array.
/ Sort.
๋ต๋ณ
ํ์ค์ผ, 39 36 ๋ฐ์ดํธ
import Data.List
(>>=sort).transpose
์ฌ์ฉ ์ : ((>>=sort).transpose) ["HELLO","world","!!!!!"]-> "!Hw!Eo!Lr!Ll!Od".
๋ฌธ์์ด ๋ชฉ๋ก์ ๋ฐ๊พธ๊ณ ๊ทธ sort์์ ๋งคํ ํ๊ณ ๊ฒฐ๊ณผ ๋ฌธ์์ด ๋ชฉ๋ก์ ์ฐ๊ฒฐํ์ญ์์ค ( >>=๋ชฉ๋ก ์ปจํ
์คํธ๋์
๋๋ค concatMap).
๋ต๋ณ
Pyth, 5 ๋ฐ์ดํธ
์ฐํธ ๋ฒํธ ( C) ์
๋ ฅ ( Q), MAPS๋ S์คํธ ๋ค์ sUMS.
sSMCQ
๋ต๋ณ
ํฐ ์คํฌ๋ฆฝํธ , 9 ๋ฐ์ดํธ
_tยกรlpยก)ยต
TeaScript์๋ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๋ด์ฅ ๊ธฐ๋ฅ์ด ์๋ชป๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋์ด ์์ต๋๋ค.
์จ๋ผ์ธ์ผ๋ก ์ฌ์ฉํด๋ณด์ญ์์ค
์ธ ๊ณจํ
_t()m(#lp())j``
์ค๋ช
_t() // Transposes input array
m(# // Loops through inputs
lp() // Sorts characters by char code
)
j`` // Joins back into string
๋ต๋ณ
๋ต๋ณ
ํ์ด์ฌ, 50 48 ๋ฐ์ดํธ
lambda x,y=''.join:y(map(y,map(sorted,zip(*x))))
-2 ๋ฐ์ดํธ๋ฅผ์ํ @xnor์๊ฒ ๊ฐ์ฌํฉ๋๋ค!
๋ต๋ณ
์๋ฐ ์คํฌ๋ฆฝํธ (ES6), 57 ๋ฐ์ดํธ
a=>a[0].replace(/./g,(c,i)=>a.map(w=>w[i]).sort().join``)