안전영역

https://www.acmicpc.net/problem/2468

풀이

비의 높이(지역 높이 최소~최대) 로 다음을 반복

  1. 물에 잠긴 영역 체크
  2. BFS로 안정 영역 개수 체크

오답 원인

최소 답을 0으로 설정하였기 때문에 계속 틀렸었다.

해결

최소 답은 1이다.

왜냐하면, 아무 것도 잠기지 않는다면 하나의 영역이기 때문이다.

Read more

숨바꼭질

풀이

https://www.acmicpc.net/problem/1697

  • 현재 위치에서 이동 가능한 곳 체크
    • X - 1
    • X + 1
    • X * 2
  • 체크 조건
    • 이동 가능한 곳이 범위 안에 있나?
    • 아직 방문하지 않은 곳인가?
  • Queue에서 이동 가능한 곳을 뽑아냄
    • 동생의 위치이면 그래프의 Depth를 출력
  • 그래프의 Depth를 표현하기 위해
    • Class는 위치와 depth로 구성
Read more

팀배분

풀이

https://www.acmicpc.net/problem/1953

  • 깊이에 따라 팀을 나눔
    • 깊이 0, 2, 4, 6, 8 …. : 백팀
    • 깊이 1, 3, 5, 7, 8 …. : 청팀
  • 학생을 아직 방문하지 않았으면 학생을 root로 BFS
  • 깊이 정보를 나타내기 위해 Student class 생성해서, 학생 번호와 깊이 저장
Read more

돌다리

풀이

https://www.acmicpc.net/problem/12761

  • 트리의 깊이가 얼마인지 구하면 됨
    • 현재위치에서 갈 수 있는 곳을 Queue에 넣을 때,
    • 위치와 트리의 depth를 함께 저장한다.
    • 위치
      • 8가지 경우의 수
    • 트리의 depth
      • 현재위치의 깊이+1
Read more

물통

풀이

https://www.acmicpc.net/problem/2251

  • 경우의 수

    • A -> B
    • A -> C
    • B -> A
    • B -> C
    • C -> A
    • C -> B
  • 가능한 모든 경우를 Queue에 넣어가면서 체크

  • EX

    • (0 0 10)

    • (8 0 2), (0 9 1)

      • (0 8 2), (0, 0, 10) : 이미 체크했으므로 큐에 넣지 않음, (8, 2, 0)
      • (8 1 1), (0 0 10) : 이미 체크했으므로 큐에 넣지 않음, (1 9 0)

      ….

Read more