본문 바로가기
  • AI 개발자가 될래요
Python

[코테공부/Softeer] 나무 공격 Python

by 꿀개 2025. 1. 31.

[코테공부/Softeer] 나무 공격 Python

 

https://softeer.ai/practice/9657

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

 

softeer.ai

 

...

 

더 자세한 문제 내용은 링크 참고.

 

나의 해결법

1. 아이디어

각 행 별로 1의 개수가 몇 개인지 count하여 1차원 배열로 저장한 뒤, 공격 범위 행 인덱스의 값을 1씩 빼주면 되겠다.

 

코드

import sys
input = sys.stdin.readline

n, m = list(map(int, input().split()))

count_1 = [input().count("1") for i in range(n)]

lr1 = list(map(int, input().split()))
l1, r1 = lr1[0]-1 if lr1[0]>0 else 0, lr1[1]
lr2 = list(map(int, input().split()))
l2, r2 = lr2[0]-1 if lr2[0]>0 else 0, lr2[1]

for i in range(l1, r1):
    if count_1[i] > 0:
        count_1[i] -= 1

for i in range(l2, r2):
    if count_1[i] > 0:
        count_1[i] -= 1

print(sum(count_1))

 

결과