HWI's Devlog
Published 2023. 1. 27. 15:16
20230126 Daily/TIL

1. 백준 1149 RGB거리

맨 처음 집을 Min()으로 최소값을 구한 후, 풀어보려다가

26 40 83
01 60 57
30 02 50

이런 경우에는 맨 처음 집을 무조건 최소값을 고르는게 아니라는 것을 발견했다. DP로 풀면 될 것 같다는 생각이 들었고, 고정 값이 어디일까를 고민해보았다. n이 최소 2이고 문제에서도 i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 라고 되어있으니 구할 수 있는 정확한 값은 가장 첫번째 값이 아니라 두번째 값 부터겠구나 싶었다.

비용을 입력해둔 배열을 재활용 해서 각각의 집에 대해

  • 이전 집의 빨, 초, 파 값과 다음 집의 빨, 초, 파 값 중 작은 것을 찾고
  • 자기 자신의 빨, 초, 파 비용을 더해나가는 식으로 구현
  • 마지막 집 기준으로 빨, 초, 파 어느 비용이 가장 적은지 찾으면 끝

DP 배열을 따로 안만들고 입력 받은 원본을 수정해서 쓰는 경우도 있다는 것을 배웠다.

 

2. 백준 7576 토마토

처음에 그냥 토마토가 다 익었는지 아닌지 판단하는 문제로 착각하고 dfs로 풀었다가 최소 비용을 구해야 하는걸 깨닫고 bfs로 다시 풀었다.

bfs로 구현하기 시작하면서도 실수를 했는데, 최단거리 구할 때 근접 노드로 이동하며 이전 노드에 +1 해주는 식으로 하면 편한걸 count 변수를 두고 뭔가.. 뭔가를 세려고 했다….

간단한 문제인거 같은데... count 구현이 잘 안되고 어렵게 느껴져서 '아 이게 아닌거같은데' 하다가 근접 노드에 +1 씩 해주며 bfs를 진행하는 방식의 풀이가 떠올랐다.

최소 시간, 최단 거리 구할 때는 bfs, 다익스트라, 플로이드워셜을 떠올리고 상황에 맞게 사용하자.. !!!!! bfs는 비용이 1일 때 우선적으로 떠올릴 것!

 

'Daily > TIL' 카테고리의 다른 글

20230201 - 20230206  (0) 2023.02.07
20230127 - 20230129  (0) 2023.01.30
profile

HWI's Devlog

@H_W_I

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!