3mF9Ý.R}J¹ô¹ävy`¦'*ìN4%©>ir}®iRr}®<iR})ˆ}¯øvyðý}»
설명
입력 예 = 4
먼저 0에서 9 사이의 입력 ^ 3 난수 문자열을 만듭니다.
3mF9Ý.R}J
생산
6799762549425893341317984133999075245812305412010122884262903656
그런 다음 입력 크기별로 조각으로 나눕니다.
그것은 입력 조각으로 더 나뉩니다.
¹ô¹ä
이것은 우리에게 숫자의 행렬을 제공합니다.
[['6799', '7625', '4942', '5893'],
['3413', '1798', '4133', '9990'],
['7524', '5812', '3054', '1201'],
['0122', '8842', '6290', '3656']]
그런 다음 행렬의 행을 반복하여 올바른 위치에 별표를 삽입합니다.
v } # for each row in matrix
y` # flatten list to stack
¦'*ì # replace the first digit of the last number with "*"
N4%©>ir} # if row-nr % 4 == 0, move the number with "*" to the front
®iRr} # if row-nr % 4 == 1, move the number with "*" to the front
# and reverse the number, moving "*" to the numbers right side
®<iR} # if row-nr % 4 == 2, reverse the number, moving "*"
# to the numbers right side
)ˆ # wrap row in a list and add to global array
이제 각 행에 "*"가있는 행렬이 있지만 열당 별표가 필요합니다.
[['*893', '4942', '7625', '6799'],
['099*', '4133', '1798', '3413'],
['7524', '5812', '3054', '102*'],
['0122', '8842', '6290', '*656']]
따라서이 목록을 압축하여 행을 열로 바꾸거나 그 반대로합니다.
[['*893', '099*', '7524', '0122'],
['4942', '4133', '5812', '8842'],
['7625', '1798', '3054', '6290'],
['6799', '3413', '102*', '*656']]
이제 남은 것은 출력을 포맷하는 것입니다.
vyðý}»
공백의 행과 개행의 열을 결합하면 최종 결과가 나타납니다.
*893 099* 7524 0122
4942 4133 5812 8842
7625 1798 3054 6290
6799 3413 102* *656
온라인으로 사용해보십시오!
오래된 50 바이트 솔루션
F¹Fõ¹F9Ý.R«}}¦'*ì})¹ävyN4%©>iR}®iíÁ}®<ií}})øvyðý}»