본문 바로가기
코딩 테스트/softeer

나무 공격

by ornni 2024. 11. 25.
728x90
반응형

첫번째 코드

 

먼저 차근차근하게 input들을 알맞게 넣는다!

그리고 grids를 구성하는 방법을 생각했다.

사실 0과 1로 구성된 그리드를 그대로 작성한 후 1을 0으로 바꾸는 작업을 하려고 생각해보니

 

각 행별 합을 구한 후 1을 빼는 형식이 훨씬 용량도 적게 사용할 것 같다는 생각이 들었다.

하여 grids 안에 각 행별 1의 값을 더한 값들을 넣었다.

 

그리고 girds리스트의 원소 안에  l1부터 r1까지의 값들을 1씩 빼고

같은 방법으로 l2부터 r2까지의 값들을 1씩 뺀다.

 

이 다음에 음수로 구성된 숫자가 있을 수 있으므로 해당 숫자를 모두 0으로 바꾼 뒤

전체 남은 개수를 더한다!

 

이때 인덱싱에 주의하도록 하자!

 

import sys
input = sys.stdin.readline

n, m = map(int, input().split())
grids = []

for _ in range(n):
    now_grid = list(map(int, input().split()))
    grids.append(sum(now_grid))

grids.insert(0, 0)

l1, r1 = map(int, input().split())
l2, r2 = map(int, input().split())

grids[l1:r1+1] = [x-1 for x in grids[l1:r1+1]]
grids[l2:r2+1] = [x-1 for x in grids[l2:r2+1]]

for i in range(len(grids)):
    if grids[i] < 0:
        grids[i] = 0

print(sum(grids))

 

통과!

사실 softeer 문제를 처음 풀어서 많이 쫀 것도 사실이다...

이전에 코테 문제를 보지도 않았을 때 현대 코딩테스트를 경험했는데...

그때 굉장히 어렵고 새로운 분야라는 생각이 들어서...

 

이제라도 차차 준비하도록 하자!


링크

https://softeer.ai/practice/9657

 

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

 

softeer.ai

 

 

반응형

'코딩 테스트 > softeer' 카테고리의 다른 글

근무 시간  (0) 2024.12.09
금고털이  (0) 2024.11.22