# 돌
stone = [0]*100

# 재산
P = int(input())

# 비서 수
N = int(input())

# 비서의 위치, 방향
dir = [list(map(str,input().split())) for _ in range(N)]

# 이동
for q in dir:

    # 오른쪽으로 이동하는 경우
    if q[1] == 'R':

        # 현재위치에서 오른쪽으로 이동하면서 +1 해주기
        # 만일 시작 위치가 0이었으면 int(q[0])-1 해서
        # 현재 위치를 밟는 경우 제거
        for w in range(int(q[0]),100):
            stone[w] += 1

    else:
        
        # 현재위치에서 왼쪽으로 이동하면서 +1 해주기
        # 현재 위치 밟는 경우 제거하기 위해 -1 해줌
        for e in range(0,int(q[0])-1):
            stone[e] += 1

blue = 0
red = 0
green = 0

for r in range(100):
    
    # 나머지가 0인 경우 파란색 추가
    if stone[r]%3 == 0:
        blue += 1
        
    # 나머지가 1인 경우 빨간색 추가
    elif stone[r]%3 == 1:
        red += 1
        
    # 나머지가 2인 경우 초록색 추가
    else:
        green += 1

print(format(P*(blue/100),".2f"))
print(format(P*(red/100),".2f"))
print(format(P*(green/100),".2f"))

그 외

문제 풀이를 위한 아이디어

 

1. format(3.1414, ".2f")를 통해 3.14까지만 출력 가능

2. 돌은 100개다 문제를 잘 읽어보자

3. 색을 변경할 때, 0 1 2만 반복하게 만들어서 stone.count 형식으로 해결 가능

 

ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.

 

오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.

 

혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다