스마트 물류

발자·2023년 5월 12일
0

Softeer

목록 보기
16/17

문제

# N : 라인의 길이, K : 부품을 집을 수 있는 거리
N, K = map(int, input().split())

# 로봇과 부품의 위치
# 문자 P(로봇)와 H(부품)
line = [i for i in input()]

# 로봇이 잡은 부품 확인
P = [False for i in range(N)]
# 부품을 잡은 로봇인지 확인
H = [False for i in range(N)]

# 부품을 집을 수 있는 거리 정의
dk = [i for i in range(-K, K+1)]

for n in range(N):
    if line[n] == 'P':
        for k in dk:
            nn = n + k
            # 범위 내의 nn이 n과 같지 않고,
            # 로봇이 잡지 않은 부품이고,
            # 부품을 잡지 않은 로봇이면
            if 0 <= nn < N and nn != n and not P[n] and line[nn] == 'H' and not H[nn]:
                P[n] = True
                H[nn] = True

print(P.count(True))

0개의 댓글