아래에 준비된 문제는 아주 간단합니다. 자신이 사용하는 또는 선호하는 언어를 사용하여 최대한 빠르게 우아하면서도 미려한 코드를 작성해보세요. 제한 시간은 10 분입니다. 시간이 초과된 사람은 루저입니다. 아마도 확실히 분발해야 할 것입니다.
현재 시간을 확인하세요. 지금부터 시작합니다.
당신은 운세 카드를 여러사람에게 배부하는 프로그램을 작성 중입니다.
당신은 사람 수 별로 카드를 나누어주는 함수를 작성해야 합니다.
다음 예제를 잘 읽고 모든 조건을 만족하는 함수를 작성하세요.
함수는 아래처럼 2개의 인자를 받습니다.
3, "123123123"
첫 번째 인자인 3은 플레이어의 수를 나타냅니다. "123123123"은 카드의 시퀀스를 나타냅니다. 플레이어는 다음과 같이 카드를 나누어 가져야합니다.
{"111","222","333"}
함수는 위치 값을 반환해야 합니다.
"111"은 첫 번째 플레이어가 받는 카드입니다.
"222"는 두 번째 플레이어가 받는 카드입니다.
"333"은 세 번째 플레이어가 받는 카드입니다.
그러나 다음과 같은 경우도있습니다. 모든 플레이어는 동등하게 카드를 나누어 가져야합니다.
4, "123123123"
이 경우, 당신의 프로그램은
{"12","23","31","12"}
를 반환해야 합니다.
{"123","23","31","12"} 는 안됩니다.
여기에 여러가지 예제가 있습니다.
예1)
6, "012345012345012345"
Returns: {"000", "111", "222", "333", "444", "555" }
예2)
4, "111122223333"
Returns: {"123", "123", "123", "123" }
예3)
1, "012345012345012345"
Returns: {"012345012345012345" }
예4)
6, "01234"
Returns: {"", "", "", "", "", "" }
예5)
2, ""
Returns: {"", "" }
끝으로, 가급적이면 아래와 같은 형식으로 통일해 주세요.
Class: Cards
Method: deal
Parameters: int, String
Returns: String[]
Method signature: String[] deal(int numPlayers, String deck)
문제를 모두 푸셨다면 당신이 작성한 코드와 언어, 소요된 시간을 댓글로 달아주세요.
Comments
Got something to add? You can just leave a comment.
function DealCards(numPlayers, deck) {
var players = new Array(numPlayers);
if (!(deck.length % numPlayers)) {
if (players.length == 1) players[0] = deck;
else {
for (var i = 0; i < deck.length; i++) {
if (!players[i % numPlayers]) players[i % numPlayers] = "";
players[i % numPlayers] += deck[i];
}
}
}
return '{"' + players.join('", "') + '" }';
}
자바스크립트, 10분 조금 넘음 ㅠ.ㅠ
reply edit
var test = function(nUser, cards) {
if ((cards.length % nUser) != 0){
var arr = [];
for(var i = 0 ; i < nUser ; i+=1) {
arr.push("");
}
return arr;
}
var arrs = [];
for(var i = 0 ; i < nUser ; i +=1) {
arrs.push([]);
}
var cCard = parseInt(cards.length / nUser);
for(var i = 0 ; i < cards.length ; i +=1){
var _numUser = i % nUser;
arrs[_numUser].push(cards[i]);
}
return arrs;
}
javascript 사용 8분 소요....
간만에 느끼는 긴장감.. ㅋ
reply edit
워~ 멋져요 ^^; ㅋㅋ
reply edit
* 언어 : java
* 시간 : 대략 10분 정도?? (루저일수도..ㅠㅠ)
public String[] deal(int numPlayers, String deck) {
char[] c = deck.toCharArray();
String[] result = new String[numPlayers];
for(int i=0; i< result.length; i++) {
result[i] = "";
}
int cnt = 0;
for(char ch : c) {
result[cnt] = result[cnt] + ch;
cnt++;
if(cnt == numPlayers) {
cnt=0;
}
}
return result;
}
reply edit
루저는 도전정신을 자극하기위한 일종의 도발입니다. 너무 신경쓰지 마세요 ^^;
reply edit
package main
import ("fmt"; "container/vector";)
func main() {
fmt.Println(deal(3, "123123123"));
fmt.Println(deal(6, "012345012345012345"));
fmt.Println(deal(4, "111122223333"));
fmt.Println(deal(1, "012345012345012345"));
fmt.Println(deal(6, "01234"));
fmt.Println(deal(2, ""));
}
func deal(numPlayers int, deck string) []string {
var p vector.StringVector;
for i:=0; i < numPlayers; i++ { p.Push("") }
if len(deck) % numPlayers == 0 {
for i:=0; i < len(deck); i++ {
idx := i % numPlayers;
p.Set(idx, p.At(idx) + string(deck[i]));
}
}
return p.Data();
}
result:
[111 222 333]
[000 111 222 333 444 555]
[123 123 123 123]
[012345012345012345]
[ ]
[ ]
google go로 작성해봤습니다. 언어에 익숙치 않아서 10분 넘게 사용했습니다.
reply edit
와 이것이 구글 go 군요!
reply edit
var Cards = {};
Cards.deal = function(numPlayers, deck) {
var dist = Array(numPlayers);
for (var i = 0; i < numPlayers; i++) {
dist[i] = "";
}
var round = Math.floor(deck.length / numPlayers);
for (var i = 0; i < round; i++) {
for (var j = 0; j < numPlayers; j++) {
var idx = i * numPlayers + j;
dist[j] += deck.charAt(idx);
}
}
return dist;
}
시작 시간: 20:14:19
종료 시간: 20:19:05
소요 시간: 4:46
reply edit
헉! 4분! 들여쓰기까지! 조건문도 없고! 미려하십니다.
reply edit
var Cards ={
deal : function(numPlayers, deck){
var results = [];
for(var i = 0; i < numPlayers ; i ++){
results[i] = '';
}
for(var i = 0; i < deck.length; i++){
results[i%numPlayers] += deck.substr(i,1);
}
var minLen = 0;
for(var i = 0, len = results.length ; i < len ; i++){
if( minLen == 0){
minLen = results[i].length;
}
if(minLen > results[i].length ) minLen = results[i].length;
}
for(var i = 0, len = results.length; i < len ; i++){
results[i] = results[i].substr(0, minLen);
}
return results;
}
}
console.log(3, "123123123", Cards.deal(3, "123123123"));
console.log(4, "123123123", Cards.deal(4, "123123123"));
console.log(6, "012345012345012345", Cards.deal(6, "012345012345012345"));
console.log(4, "111122223333", Cards.deal(4, "111122223333"));
console.log(1, "012345012345012345", Cards.deal(1, "012345012345012345"));
console.log(6, "01234", Cards.deal(6, "01234"));
console.log(2, "", Cards.deal(2, ""));
소요시간: 13min
reply edit
function Cards(){
this.deal = function(numPlayers, deck){
var i, len, result = [];
for (i = 0; i < numPlayers; ++i) {
result[i] = "";
}
len = deck.length - deck.length % numPlayers;
for (i = 0; i < len; ++i) {
result[i % numPlayers] += deck.charAt(i);
}
return result;
};
};
코드 작성은 한 5~7분 정도 걸린 것 같은데..
다른 기발한 방법을 한 20분간 해메고, (정규식과 split, join 을 남용해 보았으나, 코드가 미려해지기는 커녕 미련해지더군요)
처음 짰던 코드로 올립니다. 그런데 크롬에서 댓글 달기가 안되네요ㅠ (여기서 한 5분 까먹은듯)
reply edit
다행히도 IE 에서는 댓글이 달아지는군요ㅠ
크롬에서 왕 리뷰까지 길게 썼는데 날라가서 걍 포기했어용
그냥 순정 크롬 3.0 인데.. 원래 안되는건가요? ㅠㅠ
제약 사항이 꽤 있어서 다들 비슷하게 코딩하실줄 알았는데, 의외로 꽤 다르게 짜셨네요.
아무튼 즐거운 코딩이였습니다. 감사를.. :]
reply edit
테스트 코드
var obj = new Cards();
var test1 = obj . deal(6, "012345012345012345");
console.debug(test1);
var test2 = obj . deal(4, "111122223333");
console.debug(test2);
var test3 = obj . deal(1, "012345012345012345");
console.debug(test3);
var test4 = obj . deal(6, "01234");
console.debug(test4);
var test5 = obj . deal(2, "");
console.debug(test5);
reply edit
와우! 자바스크립트! 멋지십니다. 그리고 죄송해요 댓글 캡차에 버그가 있어요 ㅠ.ㅠ
reply edit
루비 구현입니다. 구현에 3분 테스트 코드 작성에 3분..
def f(num, str)
res = []
num.times {res << ""}
return res if str.size % num != 0
str.split('').each_with_index {|c,i| res[i%num] += c}
res
end
def test(num, str, expect)
if f(num, str) != expect
puts "no!"
puts "expects: " + expect.map{|i| "'#{i}'"}.join(',')
else
puts "pass: #{num} - '#{str}'"
end
end
test(6, "012345012345012345", ["000", "111", "222", "333", "444", "555" ])
test(4, "111122223333", ["123", "123", "123", "123" ])
test(1, "012345012345012345", ["012345012345012345" ])
test(6, "01234", ["", "", "", "", "", "" ])
test(2, "", ["", "" ])
reply edit
초경량 코드 역시 루비군요.
reply edit
Mac OS X + FF 3.5.6 사용중인데 캡챠 번호가 다르다고 제출이 안되네요. 전 크롬에서 제출했습니다
reply edit
스펨때문에 어설프게 캡차를 구현해 봤는데 엄청 문제가 많네요. 죄송합니다. ㅠ.ㅠ
reply edit
class Card
def deal(men, cards)
arr = Array.new(men, '')
return arr if (men > cards.length or cards.length % men != 0)
cards.split(//).each_with_index {|card, i| arr[i % men] += card}
arr
end
end
game = Card.new
raise "failed !" unless (game.deal(6, "012345012345012345") == ["000", "111", "222", "333", "444", "555"])
raise "failed !" unless (game.deal(4, "111122223333") == ["123", "123", "123", "123"])
raise "failed !" unless (game.deal(1, "012345012345012345") == ["012345012345012345"])
raise "failed !" unless (game.deal(6, "01234") == ["", "", "", "", "", ""])
raise "failed !" unless (game.deal(2, "") == ["", ""])
저도 루비...
위에 분이랑 비슷하네요.. ^^;;;
10분 이내에 만들었습니다.
reply edit
#include <string>
#include <vector>
using namespace std;
vector<string> distcards(int n, const string &c)
{
vector<string> v(n);
string::size_type s = c.length() / n;
for (int i = 0 ; i < n ; i++)
{
v[i] = string(s+1, \'\\0\');
for (int j = i, k = 0 ; j < c.length() ; j += n, k++)
v[i][k] = c[j];
}
return v;
}
Spent 9 minutes, 00:50 ~ 00:59
reply edit
#include <string>
#include <vector>
using namespace std;
vector<string> distcards(unsigned int n, const string &c)
{
vector<string> v(n);
if (c.length() < n)
return v;
for (unsigned int i = 0 ; i < n ; i++)
{
v[i] = string(c.length() / n + 1, '\0');
for (unsigned int j = i, k = 0 ; j < c.length() ; j += n, k++)
v[i][k] = c[j];
}
return v;
}
reply edit
class Cards:
....def deal(self, num_players, deck):
........self.result = self.make_empty(num_players)
........return self.solve(num_players, deck)
....def solve(self, num_players, deck):
........if num_players > len(deck):
............return self.result
........for i in range(0, num_players):
............self.result[i] = self.result[i] + deck[0]
............deck = deck[1:]
........return self.solve(num_players, deck)
....def make_empty(self, num_players):
........ret = []
........for i in range(0, num_players):
............ret.append('')
........return ret
print Cards.deal(6, '012345012345012345')
파이썬입니다 의외로 파이썬이 없군요
7분정도 소요됐습니다
파이썬은 들여쓰기가 중요한데 들여쓰기가 깨져서 . 을 넣었습니다.
reply edit
다시보니 그냥 loop를 돌리는게 낫군요
뻘짓한듯....
reply edit
matlab입니다. 8분 10초 정도
function result=cards(numPlayers, deck)
result=cell(1,numPlayers);
for i=1:numPlayers
result{i}=deck(i:numPlayers:floor(length(deck)/numPlayers)*numPlayers);
end
reply edit
와우,, 대단하십니다. 저도 한 때 코딩을 했지만... 했다고도 할 수 없는..
빠르고 우아하게라.. 저는 언제쯤 그 경지에? ㅠ_ㅠ
reply edit
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *deal(int player, char *deck)
{
char *cardList=NULL;
int deckLength;
int needSize;
int pDeck, pNew;
char first;
int i, cnt;
deckLength= strlen(deck);
needSize= (player*2) + (player-1) + deckLength + 1;
cardList= (char *) malloc(needSize);
if(cardList==NULL) {
fprintf(stderr, "Mem. Allocation err");
exit(0);
}
pDeck= 0;
pNew= 0;
first= 1;
for(cnt=0; cnt<player; cnt++) {
if(!first) {
cardList[pNew++]= ',';
}
else {
first= 0;
}
cardList[pNew++]= '"';
if(player <= deckLength) {
for(i=pDeck; i<deckLength-(deckLength%player); i+=player) {
cardList[pNew++]= deck[i];
}
pDeck++;
}
cardList[pNew++]= '"';
}
return cardList;
}
int main()
{
printf("%s\n", deal(3, "123123123"));
printf("%s\n", deal(4, "123123123"));
printf("%s\n", deal(1, "012345012345012345"));
printf("%s\n", deal(6, "01234"));
printf("%s\n", deal(2, ""));
}
------------
c언어로 작성했습니다.
for each나 string 타입도 없고, container도 없고.... 작성하면서 조금 씁쓸하더군요...
물론 알고리즘도 대충... 시간 맞춰보겠다고... 이해하는데 한 3분쯤 걸리고 알고리즘 생각하는데 조금 걸리고 작성하는데 4-5분 걸렸습니다... ㅠ.ㅠ
reply edit
public class Card {
public String[] deal(int player,String cardseq){
String temp[] = new String[player];
for(int k=0;k<player;k++){
temp[k]="";
for(int i=0;i<(cardseq.length() / player);i++){
temp[k] += cardseq.substring(k+(i*player), k+(i*player)+1);
}
}
return temp;
}
}
이게 맞을까요? 전 대략 10여분 걸렸습니다.
reply edit
저는 c# 사용했어요.
컨닝도 많이하고 하루 걸렸다는 ㅜ_ㅜ
static void Main(string[] args)
{
Test(Deal(6, "012345012345012345"), new string[] { "000", "111", "222", "333", "444", "555" });
Test(Deal(4, "111122223333"), new string[] { "123", "123", "123", "123" });
Test(Deal(4, "123123123"), new string[] { "12", "23", "31", "12" });
Test(Deal(1, "012345012345012345"), new string[] { "012345012345012345" });
Test(Deal(6, "01234"), new string[] { "", "", "", "", "", "" });
Test(Deal(2, ""), new string[] { "", "" });
}
private static void Test(string[] Answer, string[] correctAnswer)
{
bool result = true;
for (int i = 0; i < correctAnswer.Length; i++)
{
if (Answer[i] != correctAnswer[i])
{
result = false;
break;
}
}
Console.WriteLine(result);
}
private static string[] Deal(int numPlayers, string deck)
{
string[] resultArray = new string[numPlayers];
for (int i = 0; i < numPlayers; i++)
{
resultArray[i] = "";
}
int len = deck.Length - deck.Length % numPlayers;
for (int i = 0; i < len; i++)
{
resultArray[i % numPlayers] += deck.ToCharArray()[i];
}
return resultArray;
}
reply edit
class Cards:
....def __init__(self, player, seq):
........self.player = player
........self.seq = list(seq)
........self.result = []
....def deal(self):
........for player in range(self.player):
............self.result.append("")
........for round in range((len(self.seq)/self.player)):
............for player in range(self.player):
................self.result[player] += self.seq.pop(0)
........return self.result
if __name__ == "__main__":
....print Cards(3, "123123123").deal()
....print Cards(4, "123123123").deal()
....print Cards(6, "012345012345012345").deal()
....print Cards(4, "111122223333").deal()
....print Cards(1, "012345012345012345").deal()
....print Cards(6, "01234").deal()
....print Cards(2, "").deal()
저도 Python으로 작성해 보았습니다.
Python은 들여쓰기가 중요하므로, 탭 대신 ....로 치환하였습니다.
소요시간은 약 8분 정도입니다.
reply edit
public class Cards {
public String[] deal(int numPlayers, String deck){
deck.length();
int splicNum = deck.length()/numPlayers;
int bunNum = splicNum*numPlayers;
String cards[] = new String[bunNum];
if(splicNum > 0){
for(int i=0;i < cards.length;i++){
cards[i]="";
}
String slicString = deck.substring(0,bunNum);
int g=0;
for(int i=0;i<bunNum;i++){
String tmpString = slicString.substring(i,i+1);
cards[g] = cards[g]+tmpString;
g++;
if(g==numPlayers){
g=0;
}
}
}
return cards;
}
}
생각나는대로 짠 12 분이요 ㅎㅎ ... ㅠㅠ
Java요~
reply edit
function deal(num , deck) {
var arr = deck.split("");
var newArr = [];
for(var i = 0; i < num; i++) {
newArr[i] = "";
}
while(arr.length >= num) {
for(var i = 0; i < num; i++) {
newArr[i] += arr.shift();
}
}
return newArr;
}
자바스크립트로 짜봤습니다.10분정도 걸렸네요.
reply edit
def deal(no, seq)
seq = seq[0...(seq.size/no)*no]
(0...no).map{|t|
seq.split(Regexp.new('(\d{'+no.to_s+'})')).map{|i| i if !i.empty?}.compact.map{|f| f[t].chr.to_s if !f[t].nil?}.join
}
end
def test(num, str, expect)
if deal(num, str) != expect
puts "no!"
puts "expects: " + expect.map{|i| "'#{i}'"}.join(',')
else
puts "pass: #{num} - '#{str}'"
end
end
test(6, "012345012345012345", ["000", "111", "222", "333", "444", "555" ])
test(4, "111122223333", ["123", "123", "123", "123" ])
test(1, "012345012345012345", ["012345012345012345" ])
test(6, "01234", ["", "", "", "", "", "" ])
test(2, "", ["", "" ])
저도 한 10분 정도.. 걸렸네요.. ㅡㅜ
근데.. 함수로 빼고 다시 합치다 보니..
이거 좀.. 난잡하군요
def deal(no, seq)
(0...no).map{|t| seq[0...(seq.size/no)*no].scan(Regexp.new('\d{'+no.to_s+'}')).map{|f| f[t].chr.to_s}.join }
end
집에서 좀 수정을 ㅎㅎ
reply edit
오래된 포스트 같아 보이지만 Perl 코드가 없어 남겨봅니다.
use Data::Dumper;
sub distribute($$) {
my ($n, $s) = @_;
--$n;
[map {
my $t = $n - $_;
join '', ($s =~ /.{$_}(.).{$t}/g);
} 0 .. $n];
}
print Dumper(distribute(3, '123123123'));
print Dumper(distribute(4, '123123123'));
print Dumper(distribute(6, '012345012345012345'));
print Dumper(distribute(4, '111122223333'));
print Dumper(distribute(1, '012345012345012345'));
print Dumper(distribute(6, '01234'));
print Dumper(distribute(2, ''));
reply edit
주어진 조건만 testCase 에 넣고 java 로 작성했습니다. 역시 루저입니다.
public String[] deal (int numPlayers, String deck) {
String[] playerCards = new String[numPlayers];
char[] cards = deck.toCharArray();
int innerLoop = cards.length / numPlayers;
for (int i = 0; i < numPlayers; i++) {
playerCards[i] = "";
for (int j = 0; j < innerLoop; j++) {
playerCards[i] += cards[i + (j * numPlayers)];
}
}
return playerCards;
}
....test
assertArrayEquals(new String[]{"", "", "", "", "", ""}, card.deal(6, "01234"));
assertArrayEquals(new String[]{"", ""}, card.deal(2, ""));
assertArrayEquals(new String[]{"111","222","333"}, card.deal(3, "123123123"));
assertArrayEquals(new String[]{"12","23","31","12"}, card.deal(4, "123123123"));
assertArrayEquals(new String[]{"000", "111", "222", "333", "444", "555"}, card.deal(6, "012345012345012345"));
assertArrayEquals(new String[]{"123", "123", "123", "123"}, card.deal(4, "111122223333"));
assertArrayEquals(new String[]{"012345012345012345"}, card.deal(1, "012345012345012345"));
reply edit
public function deal($numPlayers, $deck = '')
{
$numTotalCards = strlen($deck);
$numPlayerCards = intval($numTotalCards / $numPlayers);
$result = array();
for ( $i = 0 ; $i < $numPlayers ; $i++ )
array_push($result, '');
for ( $c = 0 ; $c < $numPlayerCards ; $c++ )
{
for ( $p = 0 ; $p < $numPlayers ; $p++ )
{
$result[$p] .= substr($deck, $c * $numPlayers + $p, 1);
}
}
print_r($result);
}
15분 PHP 루저요~
reply edit
import java.io.*;
import java.util.Random;
import java.util.Scanner;
public class C{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
Cards card = new Cards();
String[] result = card.deal(in.nextInt(), in.nextLine().replaceAll("\"", "").trim());
System.out.print("Returns: {");
for(int i=0; i<result.length; i++){
if(i < result.length-1)
System.out.print(result[i] + ", ");
else
System.out.print(result[i]);
}
System.out.println("}");
}
}
class Cards{
public String[] deal(int numPlayer, String deck){
int count = 0;
boolean check = ((count = deck.length() / numPlayer) == 0);
StringBuffer[] numPlayers = new StringBuffer[numPlayer];
StringBuffer sbDeck = new StringBuffer(deck);
for(int i=0; i<numPlayers.length; i++)
numPlayers[i] = new StringBuffer("");
if(!check){
for(int i=0; i<numPlayer; i++){
for(int j=0; j<count; j++){
int index = (int) (Math.random() * sbDeck.length());
char ch = sbDeck.charAt(index);
sbDeck.deleteCharAt(index);
numPlayers[i].append(ch);
}
}
}
String res[] = new String[numPlayer];
for(int i=0; i<numPlayers.length; i++){
numPlayers[i].append("\"");
numPlayers[i].insert(0, "\"");
res[i] = numPlayers[i].toString();
}
return res;
}
}
10분 넘었지만 올려봅니다 ㅠㅠ 최선을 다했음..
reply edit
perl 코드에요
sub deal{
my ( $player, $sequence) = @_;
my ( $length, $c, @card_result );
$length = length $_[1];# =~ s/(\\d)//g;
$c = ($length/$player);
for ( 1 .. $c ){
for( 1 .. $player ){
$sequence =~ s/(\\d)//;
$card_result[$_-1] .= $1;
}
}
say \"@card_result\";
}
deal(3,\'123123123\');
deal(4,\'123123123\');
deal(6,\'012345012345012345\');
deal(6,\'01234\');
10분정도 걸렸네요
reply edit
#!/usr/bin/perl
use strict;
use warnings;
perl 코드 - 10분 조금 넘었네요ㅜ.ㅜ
package Cards;
sub new{ return bless {}, shift; }
sub deal{
my ($self, $num, $deck) = @_;
my @person;
foreach ( 0 .. length($deck) ){
$person[$_ % $num] .= substr($deck, $_, 1);
}
return \"@person\";
}
package main;
my @ex;
$ex[$_] = Cards->new foreach 0 .. 4;
print $ex[0]->deal(6, \"012345012345012345\").\"\\n\";
print $ex[1]->deal(4, \"111122223333\").\"\\n\";
print $ex[2]->deal(6, \"01234\").\"\\n\";
print $ex[3]->deal(2, \"\");
reply edit
perl 코드 - 10분 조금 넘었네요
#!/usr/bin/perl
use strict;
use warnings;
package Cards;
sub new{ return bless {}, shift; }
sub deal{
my ($self, $num, $deck) = @_;
my @person;
foreach ( 0 .. length($deck) ){
$person[$_ % $num] .= substr($deck, $_, 1);
}
return "@person";
}
package main;
my @ex;
$ex[$_] = Cards->new foreach 0 .. 4;
print $ex[0]->deal(6, "012345012345012345")."\n";
print $ex[1]->deal(4, "111122223333")."\n";
print $ex[2]->deal(6, "01234")."\n";
print $ex[3]->deal(2, "");
reply edit
스칼라..
def dist(n:Int, s:String):List[String] = s.take((s.length/n)*n).sliding(n,n).toList.transpose
reply edit
# in Python
def deal(x, y):
z = [''] * x
for i, q in enumerate(y[:(len(y)//x)*x]):
z[i % x] += q
return z
분배 방식을 이해하는데만 10분 중 대부분을 사용했네요..
요즘 무력감에 찌든거 같았는데 오랜만에 재밋는 글이여서 신이났네요.
reply edit
def deal(x, y):
n = len(y) // x
return [\\\\\\\'\\\\\\\'.join(y[i + j] for j in range(0, n * x, n)) for i in range(x)]
한글
reply edit
Your Reaction Time!