지미는 새로운 신발이 필요합니다!


13

지미는 지난주 에이 모든 플랫폼 밧줄 로 바빴 으며, 가난한 지미에게는 다리나 발도 서 있지 않습니다!


당신의 임무는 여러 개의 지미를 포함하는 줄을 잡고 다리와 신발을주는 것입니다!

Jimmy String 형식으로 입력 받기

지미 문자열 => /o\ /o\ /o\

포함 /o\하고

입력의 각 Jimmy에게 다음과 같은 발 쌍을 제공하십시오.

 /o\
_/ \_

입력 된 플로팅 헤드 지미 스트링을 피트 스트링을 사용하여 지미로 바꾸십시오.

// Input

       /o\   /o\          /o\

// Output

       /o\   /o\          /o\
      _/ \_ _/ \_        _/ \_

2 Jimmys가 서로 가까이 있으면 공간을 만들기 위해 이동해야합니다. Jimmys는 항상 다른 Jimmys를위한 공간을 만들기 위해 오른쪽으로 이동합니다.

// Input

/o\/o\

// Output

 /o\  /o\
_/ \__/ \_

멀리 떨어진 다른 지미는 필요하지 않으면 이동해서는 안됩니다.

// Input

/o\/o\      /o\

// Output

 /o\  /o\   /o\
_/ \__/ \_ _/ \_

// Input

/o\/o\    /o\

// Output

 /o\  /o\  /o\
_/ \__/ \__/ \_

표준 규칙과 허점이 적용됩니다.

이것은 코드 골프이므로 최단 답변이 이길 수 있습니다.


제안 된 테스트 사례 : /o\<sp>/o\<sp><sp><sp><sp><sp><sp><sp><sp>/o\/o\, 내 현재 구현은 마지막 두 Jimmies를 오른쪽 대신 왼쪽으로 이동하기 때문에 실패합니다. 모든 테스트 사례는 성공합니다.
Kevin Cruijssen

답변:


3

파이썬 (2) , 131 (120) 115 114 121 118 바이트

o=1;W=[]
for g in map(len,input().split('/o\\')):W+=[' '*(g-o)];o=max(o-g,0)+2
for q in' /o\ ','_/ \_':print q.join(W)

온라인으로 사용해보십시오!

movatica에 4 바이트 ; 버그 수정으로 인해 10 바이트가 손실되었습니다.


1
o+=2-len(g)바이트를 절약
movatica


1
@ movatica : 버그가 있었지만 편집에 의해 상쇄되었습니다 :).
Chas Brown

3

루비 -p , 77 75 바이트

"필요하지 않은 경우 지미를 움직이지 마십시오"규칙은 해결하기에 매우 시련 이었지만, 나는 그것이 잘 작동했다고 생각합니다. 적어도 파이썬보다 짧습니다 (작성시).

재귀에서 -2 바이트.

r=/(\\ ?|^)(\S+) ?/
gsub(r){"#$1 #$2"}while~r
puts$_
gsub(/ .o. ?/,'_/ \_')

온라인으로 사용해보십시오!


\S+대신 사용할 수 \/\S*있습니까?
재귀

3

PowerShell , 96 바이트

($o=$args-split'/o.'|%{' '*($w=($l+=$_.Length-1)*($l-gt0));$l-=$w+1})-join' /o\ '
$o-join'_/ \_'

온라인으로 사용해보십시오!

풀림 :

$o=$args-split'/o.'|%{
    $len += $_.Length-1
    $width = $len*($len-gt0)    # len or 0, if len < 0
    ' '*$width
    $len -= $width+1
}
# $o is array of space strings now
$o-join' /o\ '
$o-join'_/ \_'


2

, 28 바이트

 F⌕Aθ/«J∧ι⊖ι¹WKK→P_/ \_M↗/o\

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 설명:

 

차콜의 자동 왼쪽 여백을 없애려면 공간을 인쇄하십시오.

F⌕Aθ/«

모든 왼쪽 팔을 반복합니다.

J∧ι⊖ι¹

원하는 왼발 위치로 이동하십시오. Charcoal은에서 그리는 (-1, 1)데 문제가 없지만 질문 에서 허용하지 않으므로 음수 위치에서 그리기를 피해야합니다.

WKK→

기존 출력을지나 이동합니다.

P_/ \_M↗/o\

발을 출력 한 다음 이동하여 지미를 출력합니다.


2

망막 ,40 37 바이트

\+`(^|\S.)(/\S*) ?
$1 $2
 /o. ?
_/ \_

온라인으로 사용해보십시오!

3 바이트로 골프를 벌일 수있는 Value Ink 덕분입니다.


4
새 신발을 즐기십시오!
Quinn

1
글쎄, 이러한 도전은 한동안 존재하지 않는 척하려고했습니다. (지미와는 아무 관계가 없습니다.)
jimmy23013

루비 답변에 사용한 패턴 일치 (\\ ?|^)(/\S*) ?가 첫 번째 라인보다 짧아서 동일한 결과를 제공해야한다고 생각합니다 (아마도, 레티 나를 전혀 모릅니다)
Value Ink


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.