A scene of Jimmy diversity
Python 3.8 (pre-release), 51 bytes
lambda s:((c:=s.count)('o')-c('/'),c('/o'),c('/-'))
Try it online!
Python 2, 50 bytes
x,y,z=map(input().count,'o/-')
print x-y,y-z/2,z/2
Try it online!
-10 bytes by converting lambda expression to a full program thanks to @xnor (removes the double-lambda nested thing and uses assignment instead)
Jelly, (12?) 13 bytes
ċⱮ“-/o”H1¦ŻIṚ
A monadic Link accepting a list of characters which yields a list of integers, [ dwarves, acrobats, and body-builders]
(save the Ṛ
byte if we may specify our output)
Try it online!
How?
All Jimmys show a o
; all non-dwarves show a /
; all body-builders show two -
. Count these up, halve the count of -
, and perform subtraction to find the Jimmy counts:
ċⱮ“-/o”H1¦ŻIṚ - Link: list of characters
“-/o” - list of characters ['-', '/', 'o']
Ɱ - map across right with:
ċ - count occurrences = [n('-'), n('/'), n('o')]
¦ - sparse application...
1 - ...to indices: [1] -- i.e. n('-')
H - ...action: halve = [n('-')/2, n('/'), n('o')]
Ż - prepend a zero = [0, n('-')/2, n('/'), n('o')]
I - incremental differences
- = [n('-')/2, n('/')-n('-')/2, n('o')-n('/')]
Ṛ - reverse
- = [n('o')-n('/'), n('/')-n('-')/2, n('-')/2]