포켓몬 GO 진화 비용 계산기


11

이러한 진화를 달성하기 위해 얼마나 많은 포켓몬을 잡아야하는지 항상 궁금하십니까? 더 이상 궁금해! 이제 당신을 위해 그것을 계산하는 완전한 프로그램이나 함수를 작성할 것입니다!

도전 과제 :

입력으로 프로그램은 다음 단계로 포켓몬을 진화시키기 위해 사탕 비용 목록을 받게됩니다. (이 목록은 선택한 구분 기호 또는 함수 인수로 분리 될 수 있습니다). 그런 다음 프로그램은 주어진 모든 계층을 통해 진화하기 위해 진화해야 할 포켓몬을 포함하여 잡아야 할 포켓몬 수를 반환하거나 인쇄합니다.

이것을 어떻게 계산합니까? 다음과 같이 :
1. 모든 캔디 비용을 12 + 50 = 62
합산하십시오 : 2. 총 3 개의 사탕을 빼 62 - 3 = 59
십시오. 이것은 당신이 진화시키기 위해 가지고있는 포켓몬에서 한 개입니다 : 3.이 숫자를 4로 나눕니다. 교수), 항상 ceil()결과를 가져 가라 : ceil(59/4) = 15
4. 마지막으로,이 총계에 1을 더하여 잡아야 할 총 포켓몬 수를 얻으십시오, 16!

Input -> Output:

[4] -> 2
[50] -> 13
[12, 50] -> 16
[25, 100] -> 32
[19, 35, 5, 200] -> 65

승리:

앱이 이미 휴대 전화에서 대부분의 공간을 차지 했으므로 프로그램은 가능한 짧아야합니다. 가장 적은 바이트 수를 가진 완전한 프로그램 또는 기능은 2 주 안에 접수됩니다! (가장 빨리 제출 된 항목에 의해 모든 관계가 해결됩니다!)


3
결과는 어떻게 계산됩니까?
Leaky Nun

8
앞으로는 샌드 박스 를 사용 하여 문제를 해결하고 게시하기 전에 이에 대한 피드백을 받으십시오.
El'endia Starman

7
짧은 코드 길이에 대해 약간 무의미한 이론적 근거를 원한다면, "앱이 배터리를 거의 죽였 기 때문에 코드가 가능한 짧아지기를 원하므로 배터리가 방전되기 전에 코드를 입력 할 수 있습니다."
Mego

2
공식이 아니어야합니까 floor(Sum(L)/4)+1? 현재 공식은 4로 나눌 수있는 합계에 대해 작동하지 않습니다. 예를 들어 [400]100을 반환하면 실제로는 여분의 수식이 진화하려면 101이어야합니다.
Emigna

6
누군가가 Go에
Kodos Johnson

답변:




5

Brain-Flak 112 바이트

([]<([()])>){{}({}{})([][()])}{}{({}[()])<>(({}[()()()]<({}())>)){{}(<({}()()()()<({}[()])>)>)}{}<>}{}<>{}({}())

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

설명

스택을 합산하고 1을 빼고 4로 나누고 1을 더합니다.


온라인에서 이것을 어떻게 실행합니까? 내가 시도한 모든 입력 체계에 대해 1 만 출력합니다.
orlp

1
에 대한 답변이 잘못되었습니다 [4].
orlp

@orlp 수정. 온라인에서 잘못된 코드를 넣었습니다.
Ad Hoc Garf Hunter

3

C # REPL, 15 바이트

n=>n.Sum()/4+1;

에 캐스팅합니다 Func<IEnumerable<int>, int>.


3

실제로 4 바이트

Σ¼≈u

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

설명:

Σ¼≈u
Σ     sum
 ¼    divide by 4
  ≈   floor
   u  add 1

1
이 유니 코드 문자는 각각 2 바이트가 아닙니까?
user23127

1
@ user23127 UTF-8로 인코딩 된 경우 예입니다. 실제로 (그리고 그 전임자) CP437을 사용하십시오.
Mego



2

배쉬 (sed + bc) 19

sed 's~)~+4)/4~'|bc

입력은 +stdin
예를 들어 별도의 목록입니다 .
echo '(19+35+5+200)'| sed 's~)~+4)/4~'|bc





1

CJam, 7 바이트

{:+4/)}

여기 사용해보십시오!

스택의 입력을 예상하고 결과를 남기는 명명되지 않은 블록을 정의합니다.
:+목록을 합산하고 4/결과를 4로 나누고 )증가시킵니다.





1

샘플 입력의 경우 SILOS 100 99103 문자 + 22

테스트 하네스 코드.

set 512 52
set 513 10
GOSUB e
GOTO f
funce
a = 0
i = 511
lblE
i + 1
b = get i
a + b
if b E
a / 4
a + 1
return
lblf
printInt a

지점 512에서 시작하는 힙 지점을 수정하기 위해 일련의 set 명령으로 입력
합니다. 온라인으로 사용해보십시오!


Pokemon Go의 진화 계층이 8 개 이상 (실제로 최대 3 개임)을 가지고 있지 않다고해서 큰 테스트 사례를 처리 할 필요는 없습니다.
Mego

@Mego 스펙은 포켓몬 이동을 명확하게 참조하므로 모든 입력이 유효한 입력이라고 가정 할 수 있습니다. 난 정말 제로 감시 종료 개행 separaated 입력을 처리합니까 훨씬 더 나은 버전을 게시 한 것이지만, TIO 현재 borked입니다
로한 Jhunjhunwala을

@ Mego는 OP로 명확히 해 드리겠습니다. 이것이 유효하지 않으면 더 큰 테스트 사례에서 작동하도록 수정할 수 있습니다
Rohan Jhunjhunwala

이것은 실제로 표준 허점입니다 -도전에 규칙이 없다고 가정합니다.
Mego

@Mego는 3 바이트의 비용으로 수정되었으므로 이제는 1000의 진화까지 작동해야합니다.
Rohan Jhunjhunwala

0

파이썬 2, 40 바이트

import math
lambda s:math.ceil(sum(s)/4)

sum(s)정수 이기 때문에 작동하지 않으며 /Python 2에서는 두 인수가 모두 정수일 때 정수 나누기가됩니다.
Leaky Nun

@LeakyNun 무슨 뜻인가요? 그것은 나를 위해 작동
acrolith

에 대한 답변이 잘못되었습니다 [4].
orlp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.