본문 바로가기

수학34

[백준] '머리 톡톡' 1241번 - Java https://www.acmicpc.net/problem/1241문제풀이해시맵과 소수판정을 이용하여 풀었습니다. 소수판정을 할 때 약간 주의하면 됩니다.시간 초과 해결을 위해 Math.sqrt()이하까지만 반복할 것약수라 판정될 경우약수가 map에 있는지 존재 여부 확인, 있다면 value값 만큼 answer 갱신만약 약수가 1이라 자기자신이 나올 경우, 이 경우에는 answer를 1만큼 빼주기만약 4/2 = 2와 같이 key/i == i가 되는 경우, map.get(i) 만큼 다시 빼주기 그리고 hashmap을 이용하여 풀어서 result라는 배열을 따로 만들어 해당 번호를 들고있을 사람이 머리를 톡톡 치는 횟수를 저장한 뒤, 출력합니다.import java.io.*;import java.util.*;.. 2024. 9. 14.
[백준] 1052번 '물병' - Java https://www.acmicpc.net/problem/1052문제풀이n을 비트로 나타내어 1의 개수가 하나의 병이라고 보면 됩니다.만약 13이라고 한다면, 1101 이니 3개의 병에 담겨 있겠죠. k=2 이므로 1의 개수가 2 이하이어야 합니다.n을 1씩 더하여 비트 1의 개수가 k보다 작거나 같다면 수행을 중지시켜서 cnt를 알아냅니다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { Bu.. 2024. 8. 27.
[백준] 1111번 'IQ TEST' - Java https://www.acmicpc.net/problem/1111문제풀이 조건은 이렇게 나뉩니다.1. n =1 일 경우 → ans="A"2. n = 2 일 경우 - 두 수가 같을 경우 → 두 수가 0이라면 ans="0" (/zero 예외)  |  0이 아니라면 ans="arr[0]" - 두 수가 다를 경우 → ans = "A"3. n >= 3 일 경우 - a와 b의 규칙에 맞음 → ans = arr[n-1] * a + b - a와 b의 규칙에 맞지 않음 → ans = "B"  3번의 경우는 중학생 때 배웠던 일차방정식의 a와 b를 구하는 방식을 이용했습니다.먼저 arr[0], arr[1], arr[2] 을 통해 a와 b를 구하고, a와 b가 모든 값에 동일하게 작용하는지 테스트 하여 맞지 않으면 B를, .. 2024. 8. 26.
[백준] 1105번 '팔' - Java https://www.acmicpc.net/problem/1105문제풀이L과 R의 자리수가 다를 경우 → ans =0L과 R의 자리수가 같은 경우가장 큰 자리수 부터 10의 자리까지 반복문같은 자리의 수가 같고 '8'인지 확인 → ans ++같지만 8이 아닌 것은 continue지만, 같지 않은 수는 break 해야함 (예를 들면, 780과 789에서 7은 continue해야함)두 수가 같은데 마지막이 8이라면 → ans ++ (10의 자리까지 방문하기 때문에 따로 처리)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public cl.. 2024. 8. 21.
[백준] 1355번 '구멍난 케이크 자르기' - Java https://www.acmicpc.net/problem/1355 1355번: 구멍난 케이크 자르기 첫째 줄에 LC와 LH가 주어진다. 둘째 줄에는 H가 주어지고, 셋째 줄에는 hi를 공백으로 구분되어 있다. 넷째 줄에는 V가 주어지고, 다섯째 줄에는 vi를 공백으로 구분되어 있다. H가 0인 경우 셋째 www.acmicpc.net 문제 코드 import java.io.*; import java.util.*; public class Main { private static final BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); private static final BufferedWriter bw = new Buffere.. 2023. 8. 29.
[백준] 10830번 '행렬 제곱' - Java https://www.acmicpc.net/problem/10830 10830번: 행렬 제곱 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다. www.acmicpc.net 문제 코드 import java.io.*; import java.util.*; public class Main { private static final BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); private static final BufferedWriter bw = new BufferedWriter(new OutputSt.. 2023. 8. 24.