"꾸준하고 완벽한 한 걸음"

math 66

[백준 16969] 차량 번호판 2 [Java]

문제16969번: 차량 번호판 2 16969번: 차량 번호판 2 boj.ma 풀이현재와 이전 번호판 형식을 비교해 다른 경우라면 모든 경우를 다 사용할 수 있고, 같다면 동일한 경우는 사용할 수 없다.나누는 수가 1e9이지만, 계산 과정에서 int 범위를 초과한다. long으로 결과를 담자.char prev = '\\0'; long cnt = 1; for (char c : board) { if (c != prev) { cnt = (cnt * (c == 'd' ? 10 : 26)) % MOD; } else { cnt = (cnt * (c == 'd' ? 9 : 25)) % MOD; ..

[백준 04626] 가글 [Java]

문제4626번: 가글 4626번: 가글 boj.ma 풀이주어진 분자와 분모를 7진법으로 나타낼 때, B~E번째 자릿수를 출력하는 문제다.B, E가 0인 경우는 소수점 바로 오른쪽 수로, 정수 부분은 제거하자. N %= D;장제법에 따라, 분자에 10대신 7을 곱하고, 분모로 나누었을때의 몫을 자릿수로 취해야 한다.B~E번째 자릿수만 필요하므로, 0 ~ B - 1번째는 건너뛰자. for (int i = 0; i 풀이시간10분소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/04626.java problem-solving/baekjoon-online-judge/eas..

[백준 06219] 소수의 자격 [Java]

문제6219번: 소수의 자격 6219번: 소수의 자격 boj.ma 풀이주어진 A와 B 사이의 소수 중 각 자릿수에 D를 포함하는 소수가 몇개인지 구하는 문제다.우선 B까지 존재하는 소수를 에라토스테네스의 체로 구해주자. private static List getPrimeList(int a, int b) { boolean[] isPrime = new boolean[b + 1]; Arrays.fill(isPrime, true); isPrime[0] = isPrime[1] = false; final int sqrtN = (int) Math.sqrt(b); for (int i = 2; i primeList = new ArrayList(); ..

[백준 26148] 세로 달력 [Java]

문제26148번: 세로 달력 26148번: 세로 달력 boj.ma 풀이주어진 연도가 윤년인지 판별하는 문제다. // Solve int res = ((N % 4 == 0 && N % 100 != 0) || N % 400 == 0) ? 30 : 29;풀이 시간1분소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/26148.java problem-solving/baekjoon-online-judge/practice/26148.java at main · rogi-rogi/problem-solvingDaily Problem Solving Challenges. Contribute ..

[백준 01769] 3의 배수 [Java]

문제https://www.acmicpc.net/problem/1769 풀이주어진 수의 각 자리를 합하는 과정을 반복해서 한 자릿수로 만드는 문제다.문자열을 순회하며 합을 구해주자. 연산 횟수도 구해야 하므로 카운트 해주자. // Solve int cnt = 0; while (X.length() > 1) { int sum = 0; for (int i = 0; i 마지막 한 자릿수가 3의 배수인지 아닌지 확인해주자. System.out.println(Integer.parseInt(X) % 3 == 0 ? "YES" : "NO");풀이시간≤ 3m소스코드https://github.com/rogi-rogi/problem-so..

[백준 15780] 멀티탭 충분하니? [Java]

문제https://www.acmicpc.net/problem/15780 풀이K개의 멀티탭으로 N명이 모두 코드를 꽂을 수 있는지 확인하는 문제다.멀티탭에 코드를 연속으로 꽂으면 안되기 때문에 멑티탭 2구당 1명만 꽂을 수 있다.이를 멀티탭 길이에 맞게 계산하면 된다. // Solve for (int a : A) { N -= (a + 1) / 2; }만약 N이 0이하라면 N명은 모두 코드를 꽂았다는 것을 의미한다. // Output System.out.println(N 풀이 시간≤ 2m소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judg..

[백준 27376] 참살이길 [Java]

문제https://www.acmicpc.net/problem/27376 풀이구현 시뮬레이션에 시간도 계산해야 하는 문제라 난이도에 비해 까다로웠다.0에서 N까지 1씩 이동해야 하며, k개의 신호등이 초록불일 때만 이동하는 문제다.신호등의 위치가 순서대로 주어지는 보장이 없으니 입력받은 신호등 정보를 좌표 기준으로 오름차순 정렬하자. List list = new ArrayList(); for (int i = 0; i a[0]));정렬된 신호등까지는 1씩 이동한다. 마지막 위치에서 신호등 위치까지의 거리를 이용해 한 번에 계산하자. long time = 0, lastPos = 0; for (int[] info : list) { final..

[백준 23827] 수열 (Easy) [Java]

문제https://www.acmicpc.net/problem/23827 풀이주어진 수열에 대해 1 ≤ i 수가 너무 커질 수 있으니 1e9 + 7로 나눈 나머지를 출력해야 한다.문제를 만족하는 정수쌍 곱의 합은 i와 i + 1 ~ j의 합의 곱과 같다.최대 길이가 50만인 수열에 대해 누적합을 미리 구해 // Solve final int MOD = (int) (1e9 + 7); long[] prefixSum = new long[N]; prefixSum[0] = A[0]; for (int i = 1; i 모든 i에 대한 A[i] * ( prefixSum[N] - prefixSum[i] )을 구하면 된다. long res = 0; ..

[백준 30979] 유치원생 파댕이 돌보기 [Java]

문제https://www.acmicpc.net/problem/30979 풀이F의 합이 T이상인지 확인하는 문제다.T이상일 때 파댕이가 울지않기 때문이다. final int fSum = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).sum(); // Solve & Output System.out.println(T 풀이 시간≤ 2m소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/30979.java problem-solving/baekjoon-online-judge/practice/309..

[백준 01408] 24 [Java]

문제https://www.acmicpc.net/problem/1408 풀이두 시간대가 주어졌을 때 시간의 차를 계산하는 문제다.시작 시간과 종료 시간은 최대 48시간 차이가 날 수 있다. 이는 LocalTime.parse로 충분하다. // Input LocalTime start = LocalTime.parse(br.readLine()); LocalTime end = LocalTime.parse(br.readLine());시작 시간과 종료 시간의 차가 음수라면, 종료 시간은 시작 시간의 다음 날을 의미한다.24시간을 더한 후 올바른 차를 계산해서 출력하자. // Solve int totalSec = (int) Duration.between(st..