• 문제 링크
4172번: sqrt log sin
입력은 여러 개의 테스트 케이스로 이루어져 있으며, 한 줄에 하나씩 주어진다. 각 줄에는 \(i\)가 주어지며, 이 수는 0보다 작지 않고, 백만보다 크지 않다. 입력의 마지막 줄에는 -1이 주어지며,
www.acmicpc.net
• 풀이 코드
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int[] dp = new int[1000001];
dp[0] = 1;
for (double i = 1; i < dp.length; i++)
dp[(int) i] = (dp[(int) (i - Math.sqrt(i))] + dp[(int) Math.log(i)] + dp[(int) (i * Math.pow(Math.sin(i), 2))]) % 1000000;
int n;
while ((n = read()) != -1) sb.append(dp[n]).append("\n");
bw.write(sb.toString());
bw.flush();
}
private static int read() throws IOException {
int c, n = System.in.read() & 15;
boolean flag = n == 13;
if (flag) n = System.in.read() & 15;
while ((c = System.in.read()) > 32) n = (n << 3) + (n << 1) + (c & 15);
return flag ? ~n + 1 : n;
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 17202 핸드폰 번호 궁합 - Dynamic Programming / Java (0) | 2023.09.29 |
---|---|
[백준] 17291 새끼치기 - Dynamic Programming / Java (0) | 2023.09.28 |
[백준] 22971 증가하는 부분 수열의 개수 - Dynamic Programming / Java (0) | 2023.09.26 |
[백준] 17216 가장 큰 감소 부분 수열 - Dynamic Programming / Java (0) | 2023.09.25 |
[백준] 28464 Potato - Greedy / Java (0) | 2023.09.24 |
댓글