[JAVA] 백준 20191 - 줄임말
2022. 6. 24. 18:26
JAVA/백준(BOJ) 문제풀이
문제 https://www.acmicpc.net/problem/20191 20191번: 줄임말 문자열 A가 문자열 B의 줄임말이라는 것은 B의 순서를 바꾸지 않고 0 또는 그 이상 개수의 문자를 지워 A를 만들 수 있다는 뜻이다. 정의에 의해서 B는 자기 자신의 줄임말임에 유의하라. 예를 들 www.acmicpc.net 해결 방법 문제에서 주어진 S, T의 길이가 매우 길기 때문에 S * T 방식으로 접근하면 시간초과 발생 문자열 S는 한번씩 돌면서 단어를 찾아야 하기 때문에 여기서는 시간을 줄일 수 없음 따라서 T에서 시간을 줄여야 함 => 이진탐색 사용 입력으로 S = abbcca, T = cbca가 들어왔다고 가정해보자 T의 각 문자별로 위치들을 담고있는 ArrayList 생성 (인덱싱 => a =..
[JAVA] 백준 1405 - 미친로봇
2022. 6. 24. 16:34
JAVA/백준(BOJ) 문제풀이
문제 https://www.acmicpc.net/problem/1405 1405번: 미친 로봇 첫째 줄에 N, 동쪽으로 이동할 확률, 서쪽으로 이동할 확률, 남쪽으로 이동할 확률, 북쪽으로 이동할 확률이 주어진다. N은 14보다 작거나 같은 자연수이고, 모든 확률은 100보다 작거나 같은 자 www.acmicpc.net 해결 방법 n의 범위가 매우 작아서 dfs로 해결 가능 dfs를 통해 모든 경로를 다 가다가 두번째 방문을 한다면 현재까지의 확률을 더해주고 return 이동 경로가 단순할 확률을 출력하라 했으니 위에서 구한 확률을 1에서 빼준 값 출력 코드 import java.util.Scanner; public class p1405 { static int n; static double[] direc..