목록백준 (6)
원하는 것은 뭐든지
문제풀이문제 해석1. N개의 영단어가 주어질 때, 가장 비슷한 단어를 구해야 한다.2. 비슷한 정도는 접두사의 길이, 즉 앞단어가 얼마나 비슷한지가 쟁점이다.3. 접두사의 길이가 최대인 경우가 여러 개 일 경우에는 앞쪽에 있는 단어를 출력한다.문제 풀이1. 공통부분문자열(Longest Common Substring)이지만 접두사만 보고 있기 때문에 알고리즘을 사용할 필요 없다.2. 시간제한이 2초이고 n이 20,000개 이기 때문에 단순 비교로도 구현 가능하다.3. 최대겹치는 부분의 길이보다 작은 문자열이라면 비교조차 할 필요 없다.소스코드package online.judge.baekjoon;import java.io.BufferedReader;import java.io.IOException;import..
문제풀이문제해석1. 우주선 ana호가 모든 행성을 탐사하는 최소시간을 계산하려고 한다.2. ana호는 자기 자신을 제외한 모든 행성으로 떠날 수 있다. 이것이 2차원 행렬로 주어진다.3. 모든 행성을 탐사하는데 걸리는 최소 시간을 계산하여라문제 풀이1. 행성의 개수가 많지 않아서 플로이드-워셜 알고리즘을 사용해도 괜찮다.2. 2차원 행렬이 주어지고 이를 가지고 플로이드-워셜 알고리즘을 적용하면 각 행성으로 가는 최소 시간을 구할 수 있다.3. 그 후 dfs를 통해 완전탐색을 해서 최소시간을 구한다.소스코드package online.judge.baekjoon;import java.util.Scanner;/** * 우주 탐사선 * 골드 3 */public class No17182 { static boo..
문제풀이문제 해석1. 회문은 앞 뒤 방향으로 볼 때 같은 순서의 문자로 구성된 문자열을 말한다. ex) 'abba', 'qwerewq' 등2. 완전한 회문은 아니지만 글자 중 하나를 지워서 회문이 된다면 유사회문이라고 부른다. ex) 'summuus' 'xabba' 등3. 첫째 줄에 테스트 케이스 T를 입력으로 밑으로 T개의 줄에 문자열이 입력으로 주어진다.4. 각 테스트 케이스가 회문이면 0, 유사회문이면 1, 둘 다 아니면 2를 출력한다. 풀이1. 처음과 끝을 비교하여 같으면 한칸씩 전진, 후진한다.2. 만약 다른 글자가 나오면 각각을 지운 후 회문이 되는지 확인한다.3. 회문이 된다면 유사회문이고 안된다면 보통 문자열이다.소스코드import java.io.BufferedReader;import ja..
문제예제 입/출력5 6*.*.....||....@*|*.*.*....*##.4 57 9...#...#..*.*..*.....*..#.....**.*...*..*.@...#...**....#.#..*.10 8풀이입력으로 지도가 주어지는데 지도에는 @: 진원지.: 일반 도로*: 내진 설계가 되어있지 않은 건물#: 내진 설계가 되어있는 건물|: 방파제의 것들이 들어있다.진원지는 상하좌우 각 방향으로 2의 충격을 줄 수 있고 그로 인해 무너진 건물들은 여진을 발생시키며 각 방향으로 1의 충격을 준다.내진 설계가 이루어진 건물 같은 경우 두 번의 충격이 닿아야 무너지지만 내진 설계가 되어있지 않다면 바로 무너진다.지진 방파제를 만나면 즉시 멈춘다.제출 1 - 정답import java.io.BufferedReade..