편집 : 나는 전에 D & D를 해본 적이 없으므로 처음 에이 질문을했을 때 제대로 연구하지 못했습니다. 죄송합니다. dnd 5e 규칙에 최대한 충실하게 답변을 무효화 할 수있는 몇 가지 수정 작업을 수행하고 있습니다. 죄송합니다.
최근 핫 네트워크 질문 의 D & D 팬은 마법사가 선택한 주문이 가능성과 일치하는지 여부를 확인하는 데 문제가있는 것 같습니다.
소개
(이 모든 것은 앞에서 언급 한 질문에 이미 설명되어 있습니다)
마법사는 시작부터 두 가지 레벨 1 주문을 알고 있습니다 (레벨 1). [1, 1]
마법사가 레벨을 획득 할 때마다 (레벨 12, 14, 16, 18, 19 및 20 제외) 새로운 주문 (필수) 을 배웁니다 .
또한 레벨을 올릴 때 주문 중 하나를 다른 것으로 바꿀 수 있습니다 (선택 사항) .
배우고 교체 한 주문은 마법사 레벨의 반을 반올림하는 유효한 주문 슬롯 레벨이어야합니다. 이 테이블을보십시오 :
Sorcerer level Highest spell level possible
1 1
2 1
3 2
4 2
5 3
6 3
7 4
8 4
9 5
10 5
11 6
12 6
13 7
14 7
15 8
16 8
17 9
18 9
19 9
20 9
이것은 레벨 3에서 [1, 1, 2, 2]
다음과 같은 스펠 레벨을 가질 수 있음을 의미 합니다.
Level 1: [1, 1] (initial)
Level 2: [1, 1, 1 (new)]
Level 3: [1, 1, 2 (replaced), 2 (new)]
액세스 할 수있는 최상위 주문을 선택할 필요는 없습니다.
주문 레벨 [1, 1, 1, 1]
은 레벨 3에 완벽하게 유효합니다.
마지막으로, 주문을 교체하는 것은 모든 레벨 에서 선택적인 옵션 입니다 . 이는 일부 레벨은 교체를 건너 뛰고 다른 레벨은이를 대체 할 수 있음을 의미합니다.
도전
1에서 20 사이의 정수 (레벨)를 사용하는 프로그램 또는 함수를 작성하십시오.
또한 1에서 9 사이의 값 범위의 정수 (주문 레벨) 배열을 취해야합니다 (9는 최대 철자 레벨).
선택된 철자 레벨이 주어진 레벨의 마법사에게 유효한 경우 프로그램의 결과는 진실 / 거짓 값이어야합니다.
테스트 사례
Level: 1
Spells: [1, 1]
Output: true
Level: 8
Spells: [1, 1, 2, 3, 3, 5]
Ouput: false
Reason: A level 8 can't ever have access to a level 5 spell.
Level: 5
Spells: [1, 1, 1, 2, 2, 2, 3]
Output: false
Reason: A level 5 can't have access to 7 spells
Level: 11
Spells: [3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6]
Output: false
Reason: Too many spell upgrades.
The highest valid selection for level 11 is
[3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6]
이것은 코드 골프입니다 -가장 적은 바이트가 이깁니다!
[2,2,3,3]
해당 레벨의 마법사가 액세스 할 수있는 것보다 더 많은 교체가 필요하므로 주문 레벨 을 사용할 수 없습니다." -리스트가 5가 아닌 길이 4라는 사실이 더 근본적인 이유가 아닌가? ( [1,3,2,2,3]
레벨 3 [1,1,2(replaced),2(new)]
에서 [1,3(replaced),2,2,3(new)]
?로