[BOJ][Java] 1167번 트리의 지름
·
PS
문제 링크 : https://www.acmicpc.net/problem/1167 트리는 순환하지 않는다는 특징을 가지고 있고그렇기에 위에 문제에서 하나의 정점에서 다른 하나의 정점까지의 거리는 하나가 나온다.트리의 임의의 정점을 2개 골랐을 때 그 정점사이의 거리가 가장 긴 경우를 지름이라고 한다. 단순히 생각해보면 모든 정점 간의 거리를 구하면 될 것 같지만 정점의 수가 100,000 이기 때문에 시간초과가 발생한다.따라서 탐색의 범위를 줄여야 한다. 해당 문제를 풀때 아이디어는 임의의 한 정점에서 시작해서 다른 정점까지의 거리를 모두 구한 뒤 그중가장 멀리있는 정점이 해당 트리의 지름의 한 끝점이라는 것이다. 트리의 지름의 한 끝점을 구할 때 BFS를 한번 쓰고, 해당 끝점에서 BFS를 사용하여 각 ..
[BOJ][Java] 2023번 신기한 소수
·
PS
문제 링크 : https://www.acmicpc.net/problem/2023  이번 문제는 N의 자리의 숫자 중 문제의 조건에 만족하는 소수를 출력하는 문제이다.먼저 문제의 조건을 보면 7331 이라는 소수는 맨 앞인 7, 두 번째 자리까지인 73, 세 번째 자리까지인 733, 전체 7331 모두 소수라는 특징을 가지고 있다. 자기 자신과 1을 제외하고는 나누어지지 않는다는 소수의 특징을 보면 N이 몇이든 맨 앞자리의 수는 2,3,5,7 이 되어야 한다.그다음 숫자부터는 1,3,5,7,9 중 골라야 한다. 따라서 처음에는 2,3,5,7 중에서 그다음에는 1,3,5,7,9 중에서 골라 한 자리씩 추가될 때마다소수인지 아닌지를 미리 확인하면서 가지치기를 하면 시간 안에 풀 수 있다.하지만 처음부터 1,2..