GoogleFoobar
1.0.0
Google Foobar 챌린지에 대한 개인적인 의견입니다.
쉬운 문제.
문자열에 각 소수를 생성하고 저장하고, 문자열에 n+5
자리를 저장하면 하위 문자열( n
~ n+5
)을 반환하여 해결됩니다. 왜냐하면 그것이 우리가 찾고 있는 숫자이기 때문입니다.
algorithm prime_seq_substring is
input: Index N of first digit on the substring
output: String of 5 digits of prime numbers
for each prime in range[2..30000] do
concat prime to prime_seq
if length of prime_seq >= N+5 do
break
return prime_seq[N..N+5]
또 다른 쉬운 문제인데, 최소한의 줄로 이 문제를 해결하는 것이 꽤 즐거웠습니다. 왜냐면... 왜 안돼?.
문자열을 char <
로 분할하고 목록의 각 요소에 char >
가 나타나는 횟수를 계산하여 해결되었습니다. 그런 다음 목록의 인덱스를 사용하여 목록을 내림차순으로 만듭니다. 이는 목록의 각 섹션에 있는 각 직원이 다른 방향으로 걸어가는 직원을 마주하게 되는 횟수이기 때문입니다.
해결책의 마지막 단계는 목록의 각 요소를 인덱스 목록의 해당 요소와 곱하고(이것은 각 직원의 만남 횟수를 제공합니다) 각 만남이 두 번의 경례를 생성하기 때문에 이 숫자에 2를 곱하는 것입니다.
그리고 이 모든 숫자의 합(모든 직원의 총 경례 횟수)을 반환합니다.
algorithms salutes_solution is
input: String S representing the employees
output: Number of salutes performed by the employees
for each section in (S split by '<') do
concat (number of '>' in section) to sec_list
index_list := (length of sec_list)..0
for I in range[0..(length of sec_list)] do
concat ( (elem I of sec_list) * (elem I of index_list) * 2) to salutes_list
return sum of elements in salutes_list