본문 바로가기
728x90
반응형

백준/1 - 500020

[백준] 1701번 : Cubeditor(JAVA) https://www.acmicpc.net/problem/1701 1701번: Cubeditor Cubelover는 프로그래밍 언어 Whitespace의 코딩을 도와주는 언어인 Cubelang을 만들었다. Cubelang을 이용해 코딩을 하다보니, 점점 이 언어에 맞는 새로운 에디터가 필요하게 되었다. 오랜 시간 고생한 www.acmicpc.net 풀이 기존 kmp알고리즘을 이용하여 이중 for문으로 substring으로 할 시 HashSet을 써도 메모리초과가 납니다. kmp알고리즘에서 사용되는 함수 중 getpi만을 이용하여 하시면 됩니다. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream.. 2021. 8. 26.
[백준] 1786번 : 찾기(JAVA) https://www.acmicpc.net/problem/1786 1786번: 찾기 첫째 줄에, T 중간에 P가 몇 번 나타나는지를 나타내는 음이 아닌 정수를 출력한다. 둘째 줄에는 P가 나타나는 위치를 차례대로 공백으로 구분해 출력한다. 예컨대, T의 i~i+m-1번 문자와 P의 1~m www.acmicpc.net 풀이 기존 KMP알고리즘에서 달라진 부분은 같은 부분이 나올때 count를 세주고 위치를 저장해서 마지막에 출력해주는 부분입니다. ArrayList를 통하여 위치를 저장해주고 count를 선언하여 ++해줍니다(전역) 여기서 StringBuilder를 써주냐 안써주냐의 차이로 시간이 2500ms 가량이 차이납니다(확실 x) 소스코드 import java.io.BufferedReader; imp.. 2021. 8. 26.
[백준] 1003번 : 피보나치 함수(JAVA) https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 풀이 특정숫자가 될때까지의 0의 갯수, 1의 갯수를 구하는 문제입니다. 2차원 dp배열로 푸시면됩니다. 0의 갯수배열, 1의 갯수배열을 만들고 피보나치dp처럼 구하시면 됩니다. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException{ Bu.. 2021. 8. 23.
[백준] 2749번 : 피보나치 수 3(JAVA) https://www.acmicpc.net/problem/2749 2749번: 피보나치 수 3 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 피보나치 수 1 = int 피보나치수 2 = long 피보나치수 3 = 피사노 주기 피보나치수 4 = BigInteger로 풀면된다. (피보나치 수를 나눈 나머지는 항상 주기를 가진다. 이를 피사노 주기(Pisano Period)라 한다.) 1000000을 나눈 나머지를 한다는 가정하에 1500000번을 주기로 똑같은 값이 주어진다. 그러므로 size를 받아서 pisano로 나눈 나머지의 위치만 구해주면 되는 간단한 문제였다. 피사노 주기를 알고 있다는 가정하에.. 소스코.. 2021. 8. 21.
728x90
반응형