티스토리 뷰
전염병
문제
철수네 마을에는 갑자기 전염병이 유행하기 시작하였다. 이 전염병은 전염이 매우 강해서, 이웃한 마을끼리는 전염되는 것을 피할 수 없다. 철수네 마을은 1번부터 N번까지 번호가 매겨져 있다. 철수네 마을의 구조는 꽤나 복잡한데, i번 마을에서 출발하면 ix2 번 마을에 갈 수 있고, 또한 i/3 번째 마을에도 갈 수 있다. 전염병은 사람에 의하여 옮는 것으로 알려져 있다. 따라서 i번 마을에 전염병이 돌게 되면, ix2 번 마을과 i/3 번 마을 역시 전염병이 돌게 된다. K번 마을이 가장 처음으로 전염병이 돌기 시작했을 때, 전염병이 돌지 않는 마을의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 전체 마을의 개수 N과, 처음으로 전염병이 돌기 시작한 마을 번호 K가 주어진다. ( 1 ≤ N, K ≤ 100,000 )
출력
전염병이 돌지 않는 마을의 개수를 출력한다.
예제 입력
10 3
예제 출력
4
코드
//전염병
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
public static ArrayList<Integer> box = new ArrayList<>();
public static int done[];
public static int count = 0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//총 몇개의 숫자를 입력 받을 것인지
int a;
int b;
a = sc.nextInt();
done = new int[a];
b = sc.nextInt();
sc.close();
epidemicBFS(b);
System.out.println(a - count);
}
public static void epidemicBFS(int cur) {
Queue<Integer> q = new LinkedList<>();
int data = cur;
q.offer(data);
while (!q.isEmpty()) {
data = q.poll();
count++;
int gop = data * 2;
int nanugi = data / 3;
if (gop <= done.length && done[gop-1] == 0) {
q.offer(gop);
done[gop-1] = 1;
}
if (nanugi >= 1 && done[nanugi-1] == 0) {
q.offer(nanugi);
done[nanugi-1] = 1;
}
}
}
}
'알고리즘 문제 풀이 ' 카테고리의 다른 글
선형큐 구현하기 (0) | 2018.10.01 |
---|---|
스택구현하기 (0) | 2018.10.01 |
숫자박스 - 90점 (0) | 2018.10.01 |
쿼드트리 quadtree (0) | 2018.10.01 |
미로찾기 (2) | 2018.09.28 |
이상한 계산기 (0) | 2018.09.28 |
이분그래프 (0) | 2018.09.27 |
2색 칠하기 (0) | 2018.09.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java #백준 #알고리즘 #2805 #나무자르기
- 알고리즘
- Terminal
- 한글 자동 완성
- java #오르막수 #백준 #알고리즘
- npm
- webspider
- 중간거리 #야만나 #약속장소추천 #중간위치 #웹 #리액트 #React #reactjs #kakao지도 #kakaoapi
- java #알고리즘 #백준 #N과M #백트래킹
- javascript #백준 #알고리즘 #LCS
- java #알고리즘 #백준
- java #알고리즘 #백준 #퇴사
- webpack
- 백준
- java #알고리즘 #백준 #패션왕신해빈
- 2630번
- 1992번
- 색종이자르기
- 쿼드트리
- TypeScript
- Game
- java #백준 #알고리즘 #로또 #6603
- 백준 #알고리즘 #전깃줄 #NodeJs #javascript
- javascript #백준 #회의실배정 #알고리즘
- java #퀵소트 #quicksort #알고리즘 #백준
- javascript #연속합 #알고리즘 #백준
- Javascript
- react
- 백준 #java #알고리즘
- java #하노이 #알고리즘 #백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함