미로탐색

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

풀이

  • 빠른길은 BFS로 품
  • 모든 가중치가 1이면 최단 거리 알고리즘은 BFS로 품
  • BFS는 단계별로 진행됨. 즉 거리별로 진행됨. 거리가 1인곳가고, 거리가 2인곳 가고~
  1. 입력값대로 미로 그림

  2. 1,1 좌표를 큐에 넣음

  3. 큐에서 pop

  4. 점 이동

  5. 이동한 점 큐에 넣음

  6. 거리 계산

  7. 3번으로

Read more

섬의 개수

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

풀이

  • 아파트 단지 문제랑 유사
  • 그래프 문제이지만, 인접리스트 or 인접행렬 만들 필요 X
  • 왜냐하면, 어떤 칸과 연결되어 있는 칸 : 상하좌우 네 칸 중에 있기때문에.
  • 따러서, 모든 칸 마다 네 칸을 검사하면 됨
  1. d[i][j]

    1
    2
    i,j 를 방문 X => d[i][j] = 0
    i,j 를 방문 O => d[i][j] = 1
  2. 방문을 아직 안했고, 아파트가 있으면

    1
    dfs탐색으로 상하좌우 조사

Read more

단지번호 붙이기

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

풀이

  • 연결요수 문제와 비슷
  • 그래프 문제이지만, 인접리스트 or 인접행렬 만들 필요 X
  • 왜냐하면, 어떤 칸과 연결되어 있는 칸 : 상하좌우 네 칸 중에 있기때문에.
  • 따러서, 모든 칸 마다 네 칸을 검사하면 됨
  1. d[i][j]
1
2
i,j 를 방문 X => d[i][j] = 0
i,j 를 방문 O => d[i][j] = 단지 번호
  1. 방문을 아직 안했고, 아파트가 있으면
1
dfs탐색으로 상하좌우 조사

Read more

term프로젝트

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

의문

  • cycle 내의 개수를 셀 때 static 변수를 사용
  • 왜 파라미터로 넘기면 계속해서 0으로 초기화 될까?

경우의 수

  • 처음 방문
  • 두 번째 방문, 같은 cycle
  • 같은 cycle 내에서 이미 두 번을 방문
  • 다른 cycle 내에서 이미 방문
Read more

1707:이분그래프

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

개념

  1. 그래프를 다음과 같이 A와 B로 나눌 수 있으면 이분그래프

img

1
모든 간선의 한 끝은 A에, 다른 한 끝은 B에 있음.
  1. DFS or BFS 로 풀 수 있음. check 배열이 포인트!!
1
2
3
check[i] == 0 : 아직 방문 X
check[i] == 1 : 방문 O, 빨간색
check[i] == 2 : 방문 O, 파란색

Read more