반응형
https://level.goorm.io/exam/195700/%EC%A4%91%EC%B2%A9-%EC%A0%90/quiz/1
해당 문제는 동적 프로그래밍과 시뮬레이션 문제를 혼합한 문제입니다.
문제
풀이
# 입력값을 배열로 넣고 가로(h)-위,아래, 세로(v) - 오른쪽,왼쪽으로 넣음
# 그때 겹치는게 있다면 계산?
# 예를들어, 가로 2개면 0개, 가로 1개, 세로 1개면 1개 , 가로 2개 새로 1개면 2개, 가로 2개 세로 2개면 24개 곱하기 하면 됨
n,m = map(int,input().split())
arr = [ [ [] for _ in range(n)] for _ in range(n) ]
for _ in range(m):
x,y,direction = input().split()
x = int(x) - 1
y = int(y) - 1
if direction == 'R': # 오른쪽이라면
while y<n:
arr[x][y].append('V') # 가로 넣어주기
y +=1
elif direction == 'L' : # 왼쪽이라면
while y>=0:
arr[x][y].append('V') # 가로 넣어주기
y -= 1
elif direction == 'U': # 위쪽이라면
while x>=0:
arr[x][y].append('H') # 세로 넣어주기
x -= 1
elif direction == 'D': # 아래쪽이라면
while x<n:
arr[x][y].append('H')
x += 1
# print(arr)
from collections import Counter
hap = 0
for i in range(n):
for j in range(n):
cnt = Counter(arr[i][j])
if len(cnt) == 2:
hap += cnt['V']*cnt['H']
print(hap)
1. 주어진 입력문이 상,하,좌,우에 맞게 V,H (가로,세로) 넣어줌
2. 가로,세로가 둘다 있어 중첩 점이 생긴다면 곱하여 값 갱신
반응형
'알고리즘' 카테고리의 다른 글
[구름톤 챌린지 종료] Day 20 - 연결 요소 제거하기(그래프 탐색) (0) | 2023.09.12 |
---|---|
[구름톤 챌린지] Day 19 - 대체 경로(그래프 최단 경로) (0) | 2023.09.12 |
[구름톤 챌린지] Day 17 - 통신망 분석(DFS/BFS) (0) | 2023.09.12 |
[구름톤 챌린지] Day 16 - 연합(그래프 탐색) (0) | 2023.09.12 |
[구름톤 챌린지] Day 15 - 과일 구매(그리디) (0) | 2023.09.03 |