250x250
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- equals()
- 백준
- 코딩테스트
- 테스트코드
- 스프링
- objecterror
- 오블완
- html form
- 프로그래머스
- http 메시지 컨버터
- 참조변수
- 코드트리조별과제
- fielderror
- 김영한
- DI
- 예외와 트랜잭션 커밋
- 추상클래스
- 인터페이스
- 다익스트라
- 오버라이딩
- 스프링컨테이너
- 싱글톤
- 코드트리
- 서블릿
- 의존관계
- 티스토리챌린지
- java
- HttpServletResponse
- 프록시
- @configuration
Archives
- Today
- Total
minOS
백준 5567 결혼식 본문
728x90
https://www.acmicpc.net/problem/5567
문제를 보고 상근이의 친구와 그 친구의 친구를 찾아야하니깐 상근이와 거리가 1,2 인 사람들을 찾아야겠다고 생각하였습니다.
상근이 학번은 1 이므로 처음 큐에 1을 넣고 시작하고, 그래프를 통해 방문 가능한 (아직 방문하지 않은)친구들과의 거리를 계산하고 큐에 새로운 친구들을 넣어줍니다. 이러한 과정을 큐에 아무런 원소도 없을때까지 반복하면 visited 배열에 상근이와 친구들의 거리를 알 수 있습니다. 저는 상근이를 방문했다는 의미로 visited[1] =1 이기 때문에 visited 배열이 2와 3 사이인 경우를 세주면 답이 나옵니다.
from collections import deque n = int(input()) m = int(input()) visited = [ 0 for _ in range(n+1)] graph = [[] for _ in range(n+1)] for _ in range(m): a,b = map(int,input().split()) graph[a].append(b) graph[b].append(a) def bfs(): ans =0 q= deque() q.append(1) visited[1] =1 while q: x = q.popleft() for nx in graph[x]: if not visited[nx] : visited[nx] = visited[x]+1 q.append(nx) if 2<=visited[nx]<=3: ans+=1 return ans print(bfs())
728x90
'Problem Solving > 백준' 카테고리의 다른 글
| 백준 2578 빙고 (2) | 2025.07.08 |
|---|---|
| 백준 1719 택배 (0) | 2025.07.06 |
| 백준 2941 크로아티아 알파벳 (1) | 2024.12.29 |
| 백준 15686 치킨 배달 (2) | 2024.11.14 |
| 백준 2096 내려가기 (0) | 2024.01.06 |