반응형
SMALL
알고리즘 태그
[시뮬레이션 기본]
태그 설명
시뮬레이션이란?
알고리즘을 풀 때 모든 과정이 제시되어 그 과정을 거쳐 나온 결과를 추론하는 문제입니다.
시뮬레이션은 설명해 준 대로 쭉 이행하면 됩니다.
문제
백준 14719문제 - 빗물
링크: 백준 14719
문제설명
특정 위치에 물이 고이는지 고이지 않는지를 판단한 후 이를 코드로 옮겨주면 된다.
그렇다면 어떻게 특정 위치에 물이 고이는지 안고이는지를 판단할 수 있을까???
📃 소스코드 및 설명
# 투포인터 방식으로 양쪽끝을 기준으로 서로 비교해가면서 푸는 방식으로 접근
# ex) 4 4
h, w = map(int, input().split())
# ex) 3 0 1 4
block_height = list(map(int, input().split()))
left_point, right_point = 0, w-1
# 가장 첫번쨰 점을 기준으로 시작[맨 왼쪽]
max_left = block_height[left_point]
# 가장 끝점을 기준으로 시작[맨 오른쪽]
max_right = block_height[right_point]
result = 0
# 왼쪽기준과 오른쪽 기준이 같아질때까지
while left_point < right_point:
"""
1. max_left = max(3, 3)
2. max_left = max(3, 0)
3. max_left = max(3, 1)
4. break Point
"""
max_left = max(max_left, block_height[left_point])
"""
1. max_right = max(4, 4)
"""
max_right = max(max_right, block_height[right_point])
# 비교!
if max_left >= max_right:
result += max_right - block_height[right_point]
right_point -= 1
if max_left < max_right:
result += max_left - block_height[left_point]
left_point += 1
print(result)
반응형
LIST
'프로그래밍 > 알고리즘' 카테고리의 다른 글
[BOJ][Python] 1015번 - 수열 정렬[정렬- 실버 4티어] (0) | 2022.03.12 |
---|---|
[프로그래머스][Python] 가장 큰 수[정렬 - Level 2] (0) | 2022.03.11 |
[백준알고리즘]백준 1065 파이썬 편김에 끝까지::우주를놀라게하자 (0) | 2019.09.16 |
[백준알고리즘]백준 1008 파이썬 편김에 끝까지::우주를놀라게하자 (0) | 2019.09.16 |
[백준알고리즘]백준 1001 파이썬 편김에 끝까지::우주를놀라게하자 (0) | 2019.09.16 |