Monday Mini-Golf : 매주 월요일에 게시 되는 일련의 짧은 코드 골프 과제입니다.
실화 1 : 요 전날, 저는 PC에서 JavaScript 테스트를 위해 일반적으로 사용 하는 페이지 를 방문 할 생각이 있었을 때 태블릿에서 놀고있었습니다 . 페이지가로드 된 후이 간단한 프로그램을 시작했습니다.
alert("Hello!")
그런 다음 Execute 버튼을 계속 누르고 입력 한 코드가 유효하지 않다고 놀랐습니다. 나는 텍스트 상자를 두 번째로 보았고 이것을 보았다 :
alllelelerlerlertlert("Heeelelellellelloello!")
뭐 ??? 그건 내가 입력 한 것이 아닙니다! 그래서 여기서 무슨 일이 있었습니까? 그것을 알아 내기 위해 두 가지 간단한 줄을 입력했습니다.
abcdefg
0123456
이것은 다음과 같이 밝혀졌습니다.
abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg
0112123123412345123456
지금까지 편지에 무슨 일이 있었는지는 아직 알지 못했지만 숫자는 더 단순 해 보였으므로 자세히 살펴 보았습니다. 결과적으로 웹 페이지는 단순히 첫 번째 문자를 입력 한 다음 새 문자를 누를 때마다 문자열의 나머지 문자를 모두 반복했습니다.
0112123123412345123456
0
1
12
123
1234
12345
123456
그러나 편지의 섹션은 어떻습니까? 잠시 동안 숙고 한 후에는 그것이 똑같다는 것을 깨달았지만 각 하위 섹션을 한 번 반복하는 대신 두 번 반복합니다 .
abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg
a
bb
bcbc
bcdbcd
bcdebcde
bcdefbcdef
bcdefgbcdefg
이 두 가지의 조합은 다음 기술의 조합으로 이루어집니다.
abc123z
abbbcbcbc1bc12bc123bc123zbc123z
a
bb
bcbc
bc1
bc12
bc123
bc123zbc123z
무엇이든 결함 때문에,이 문장 부호 및 공백에 다시 보인다 원인이 abc def
된다 abbbcbc deeefef
.
이 시점까지, 나는 그것을 이해하고 그것을 흥미로운 도전으로 바꾸는 데 너무 열중하여 내가 왜 거기에 있었는지 잊어 버렸습니다. (그러나 정상적으로 입력하는 방법을 알아 냈습니다. 모든 문자 다음에 스페이스 백 스페이스를 누르십시오. 꽤 지루하지만,해야 할 일을해야합니다.)
도전
과제의 목표는 처리 할 텍스트를 가져 와서 위에 나열된 내용을 변경하고 결과를 출력 / 반환하는 프로그램 또는 함수를 작성하는 것입니다.
세부
- 입력은 인쇄 가능한 ASCII 만 포함하며 탭이나 줄 바꿈은 없습니다.
테스트 사례
입력 : (한 줄에 하나씩)
Mess up text
This is some longer text.
CAPS LOCK && "Punc-tua"+'tion'
under_score_style
CaPs wItHIn loWERs
1337 numb3r5
abcdefghij 0123456789
Code-golf is the best!
출력 :
Meeesesessess upp teeexexextext
Thhhihihishis iss sooomomomeome looononongongongeongeongeronger teeexexextext.
CAAAPAPAPSAPS LOOOCOCOCKOCK && "Puuunununcunc-tuuuaua"+'tiiioioionion'
unnndndndendendernder_scccococorcorcorecore_stttytytyltyltyletyle
CaaaPaPaPsaPs wIIItItItHItHItHIItHIItHInItHIn loooWoWoWEoWEoWERoWERoWERsoWERs
1333337 nuuumumumbumbumb3umb3rumb3rumb3r5
abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefgbcdefghbcdefghbcdefghibcdefghibcdefghijbcdefghij 0112123123412345123456123456712345678123456789
Cooodododeode-gooolololfolf iss thhhehe beeesesestest!
채점
이것은 code-golf 이므로 바이트 단위의 가장 짧은 유효한 코드가 이깁니다. Tiebreaker는 최종 바이트 수에 먼저 도달 한 제출에갑니다. 우승자는 다음주 11 월 2 일 월요일에 선발됩니다. 행운을 빌어 요!
편집 : 그리고 우승자는 ... @ MartinBüttner 는 놀라운 43 바이트 솔루션에 Retina 를 사용 합니다!
1 그렇습니다.이 이야기는 완전히 사실입니다. 더 자세한 설명이 필요하면 각주 1을 참조하십시오.
' '.join(x[0]+''.join(2*x[1:i]for i in range(1,len(x)+1)) for x in raw_input().split())