본문 바로가기

백준31

2644번: 촌수계산 풀이 dfs와 bfs로 풀 수 있는 문제입니다. dfs ... 촌수를 계산해야 하는 서로 다른 두 사람의 번호를 per1, per2로 입력 받고 dfs에 per1을 값으로 삽입하고 호출합니다. 반복문을 돌리면서 graph[v]의 값을 i로 하나씩 빼온뒤 방문하지 않은 곳이라면 visited[i]의 값을 visited[v]+1한 값으로 변경 해서 방문처리를 해주고 dfs를 재호출합니다. 함수가 종료된뒤 visited[per2]의 값이 0을 초과한다면 visited[per2]의 값을 출력하고 그렇지 않다면 -1를 출력합니다. ... bfs ... 촌수를 계산해야 하는 서로 다른 두 사람의 번호를 per1, per2로 입력 받고 bfs에 per1을 값으로 삽입하고 호출합니다. 반복문을 돌리면서 graph[v].. 2022. 3. 12.
11724번: 연결 요소의 개수 풀이 dfs 와 bfs로 풀 수 있는 문제입니다. dfs ... 정점의 개수 n 만큼 값을 넣을 필드 리스트와 방문처리를 위한 리스트를 선언합니다. 간선의 개수 m 만큼 간선의 양 끝점 u(start)와 v(end)를 graph에 삽입합니다. 1부터 n+1 만큼 반복문을 돌리면서 아직 방문하지 않은 visited[i] = False 인 곳에서 dfs를 호출합니다. visited[v] = True로 방문 처리를 한뒤 graph[v]의 값을 i로 하나씩 빼와서 아직 방문하지 않은 곳이 있다면 dfs를 재호출하고 함수가 종료될때마다 cnt의 값을 1증가 시킵니다. ... bfs ... 정점의 개수 n 만큼 값을 넣을 필드 리스트와 방문처리를 위한 리스트를 선언합니다. 간선의 개수 m 만큼 간선의 양 끝점 u(.. 2022. 3. 11.
1303번: 전쟁 - 전투 풀이 dfs 와 bfs로 풀 수 있는 문제입니다. dfs ... 아직 방문하지 않은 visited[i][j]가 == 'W' or 'B'인곳에서 dfs을 호출하고 visited[x][y] = 'V' 로 방문처리 해줍니다. visited[i][j]가 'W', 'B'중 하나에 해당한다면 해당값으로 change의 값을 바꿔줍니다. 상,하,좌,우 에 대한 다음위치를 특정해주고 visited[nx][ny] == change 라면 dfs를 재호출 하고 cnt의 값을 1 증가시킵니다. 주위에 같은색 병사가 없다면 병사들이 뭉쳐있는 구역을 다 탐색한것이므로 cnt^2 을한 결과를 result에 할당합니다. ... bfs ... 아직 방문하지 않은 visited[i][j]가 == 'W' or 'B'인곳에서 bfs을 호출하.. 2022. 3. 11.
10026번: 적록색약 풀이 dfs 와 bfs로 풀 수 있는 문제입니다. dfs ... 아직 방문하지 않은 visited[i][j]가 not in 'V'인곳에서 dfs을 호출하고 visited[x][y] = 'V' 로 방문처리 해줍니다. visited[x][y]가 R,G,B중 하나에 해당한다면 해당값으로 color의 값을 바꿔줍니다. 상,하,좌,우 에 대한 다음위치를 특정해주고 visited[nx][ny] == color 라면 dfs를 재호출 합니다. 주위에 같은색이 없다면 그림이 연결돼있는 구역을 다 탐색한것이므로 cnt를 1 증가 시켜줍니다. 적록색약인 경우 'G'를 'R'로 바꿔주고 탐색합니다. ... bfs ... 아직 방문하지 않은 visited[i][j]가 not in 'V'인곳에서 bfs을 호출하고 visited[.. 2022. 3. 3.
1012번: 유기농 배추 풀이 dfs 와 bfs로 풀 수 있습니다. 입력 방법이 조금 헷갈리는 문제입니다. dfs ... 아직 방문하지 않은 graph[i][j]가 1인곳에서 dfs을 호출하고 graph[x][y] = 0 으로 방문처리 해줍니다. 상,하,좌,우 에 대한 다음위치를 특정해주고 graph[nx][ny] == 1 이라면 dfs를 재호출 합니다. 주위에 1이 없다면 배추흰지렁이가 필요한 부분을 다 탐색한것이므로 cnt를 1 증가 시켜줍니다. ... bfs ... 아직 방문하지 않은 graph[i][j]가 1인곳에서 bfs을 호출하고 graph[x][y] = 0 으로 방문처리 해줍니다. 상,하,좌,우 에 대한 다음위치를 특정해주고 graph[nx][ny] == 1 이라면 queue에 nx, ny를 삽입하고 graph[i].. 2022. 3. 3.
4963번: 섬의 개수 풀이 dfs 와 bfs로 풀 수 있는 문제입니다. dfs ... 아직 방문하지 않은 graph[i][j]가 1인곳에서 dfs을 호출하고 graph[x][y] = 0 으로 방문처리 해줍니다. 상,하,좌,우 그리고 대각선에 대한 다음위치를 특정해주고 graph[nx][ny] == 1 이라면 dfs를 재호출 합니다. 주위에 1이 없다면 섬이 연결돼있는 부분을 다 탐색한것이므로 cnt를 1 증가 시켜줍니다. ... bfs ... 아직 방문하지 않은 graph[i][j]가 1인곳에서 bfs을 호출하고 graph[x][y] = 0 으로 방문처리 해줍니다. 상,하,좌,우 그리고 대각선에 대한 다음위치를 특정해주고 graph[nx][ny] == 1 이라면 queue에 nx, ny를 삽입하고 graph[i][j] = 0.. 2022. 3. 3.