728x90

2024/06 61

[백준 자바] 15814번(야바위 대장) - StringBuilder.setCharAt()

브론즈 2문제10년 동안 도박판에서 야바위를 한 영훈은 이제 보지 않고도 구슬이 있는 컵을 맞추는 지경에 이르렀다.이런 영훈을 골탕 먹이기 위해 문자열로 야바위를 하려고 한다.T번 동안 문자열 S의 A번째 위치에 있는 문자와 B번째 위치에 있는 문자를 바꾼 결과를 출력하는 프로그램을 작성하시오.입력첫 번째 줄에 문자열 S가 주어지고 두 번째 줄에 T가 주어진다. 문자열 S의 길이는 100보다 작거나 같은 자연수이며, 알파벳 대소문자와 하이픈(-)으로만 이루어져 있다. T는 50보다 작거나 같은 자연수이다.그 다음 T개의 줄에 걸쳐 A와 B가 주어진다.A와 B는 문자열의 길이보다 작은 음이 아닌 정수이며, 문자열의 맨 처음 글자는 0번째 글자이다.출력바뀐 문자열의 결과를 출력한다.  StringBuilde..

백준/Java 2024.06.25

[백준 자바] 1124번(언더프라임) - 소인수 개수가 소수인 수

실버 1문제자연수 X를 소인수분해하면, 곱해서 X가 되는 소수의 목록을 얻을 수 있다. 예를 들어, 12 = 2 × 2 × 3이다. 1은 소수가 아니다.어떤 수 X를 소인수분해 해서 구한 소수의 목록의 길이가 소수이면, 그 수를 언더프라임 이라고 한다. 12는 목록에 포함된 소수의 개수가 3개이고, 3은 소수이니 12는 언더프라임이다.두 정수 A와 B가 주어졌을 때, A보다 크거나 같고, B보다 작거나 같은 정수 중에서 언더프라임인 것의 개수를 구해보자.입력첫째 줄에 두 정수 A와 B가 주어진다.출력첫째 줄에 A보다 크거나 같고, B보다 작거나 같은 언더프라임 개수를 출력한다.제한2 ≤ A ≤ B ≤ 100,000 에라토스테네스의 체를 사용하여 소수를 판별하고 각 숫자의 소인수를 세어 그 개수가 소수인지..

백준/Java 2024.06.25

[백준 자바] 2312번(수 복원하기) - 소인수분해

난이도 - 실버 3문제양의 정수 N이 주어졌을 때, 이 수를 소인수분해 한 결과를 출력하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 수가 주어진다. 각 테스트 케이스마다 양의 정수 N (2 ≤ N ≤ 100,000)이 주어진다.출력각 테스트 케이스마다 각 인수와 그 인수가 곱해진 횟수를 한 줄씩 출력한다. 출력 순서는 인수가 증가하는 순으로 한다.  100000까지의 소수판별 배열을 생성한다(primes)입력값을 하나씩 받아 가장 작은 소수부터 그 소수로 나누어 떨어지지 않을 때까지 나누기를 실행한다.import java.io.*;public class Main2312 { public static void main(String[] args) throws Exception { Buffer..

백준/Java 2024.06.25

[백준 풀이] 1747번(소수&팰린드롬)

난이도 - 실버 1문제어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다.어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, 소수이면서 팰린드롬인 수 중에서, 가장 작은 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다.출력첫째 줄에 조건을 만족하는 수를 출력한다.  N이 2가 아닌 짝수이면 1을 더해 홀수로 만든다.N이상의 홀수 중 소수이면서 팰린드롬 수인 것을 찾을 때까지 반복문을 돌린다.import java.io.*;public class Main1747 { public static void main(String[] args) throws Exception { ..

백준/Java 2024.06.25

[백준 자바] 21919번(소수 최소 공배수)

난이도 - 실버 3문제행복이는 길이가 𝑁$N$인 수열 𝐴$A$에서 소수들을 골라 최소공배수를 구해보려고 한다.행복이를 도와 이를 계산해주자.입력첫째 줄에 수열 𝐴$A$의 길이 𝑁$N$이 주어진다. (1≤𝑁≤10,000)$(1 \le N \le 10,000)$ 그 다음줄에는 수열 𝐴$A$의 원소 𝐴𝑖$A_{i}$가 공백으로 구분되어 주어진다. (2≤𝐴𝑖≤1,000,000)$(2 \le A_{i} \le 1,000,000)$ 답이 263 미만인 입력만 주어진다.출력첫째 줄에 소수들의 최소공배수를 출력한다.만약 소수가 없는 경우는 -1을 출력한다.  수열에 중복되는 소수가 있을 수 있으므로 입력값들을 set에 저장한다. 입력값들 중 가장 큰 수만큼의 소수 배열을 생성하여 set의 원소가 소수..

백준/Java 2024.06.24

[백준 자바] 7789번(텔레프라임) - 소수 판정

난이도 - 브론즈 2문제소수를 매우 좋아하는 수학자가 있다. 이 수학자는 매번 전화번호를 받을 때 마다, 그 전화번호가 소수인지 아닌지를 검사한다. 수학자는 자신의 모든 친구의 전화번호가 소수인지 아닌지를 기억하고 있다.계속해서 늘어나는 휴대전화 인구의 급증에 따라 정부는 한 자리를 기존 번호 앞에 붙이는 정책을 시행하기로 했다.수학자는 큰 고민에 빠졌다. 소수 전화번호를 가지고 있는 친구의 전화번호가 이제 평범한 숫자가 될 수도 있기 때문이다.수학자의 친구 중 한 사람의 원래 전화번호와 새로이 앞에 붙는 번호 한 자리가 주어졌을 때, 원래 전화번호와 새로운 전화번호가 모두 소수인지 아닌지를 구하는 프로그램을 작성하시오.입력첫째 줄에 여섯 자리의 기존 전화번호와 새로 추가되는 한 자리 번호가 주어진다. ..

백준/Java 2024.06.24

[백준 자바] 1644번(소수의 연속합)

난이도 - 골드 3문제하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어 보면 다음과 같다.3 : 3 (한 가지)41 : 2+3+5+7+11+13 = 11+13+17 = 41 (세 가지)53 : 5+7+11+13+17 = 53 (두 가지)하지만 연속된 소수의 합으로 나타낼 수 없는 자연수들도 있는데, 20이 그 예이다. 7+13을 계산하면 20이 되기는 하나 7과 13이 연속이 아니기에 적합한 표현이 아니다. 또한 한 소수는 반드시 한 번만 덧셈에 사용될 수 있기 때문에, 3+5+5+7과 같은 표현도 적합하지 않다.자연수가 주어졌을 때, 이 자연수를 연속된 소수의 합으로 나타낼 수 있는 경우의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 자연수 N이 주어진..

백준/Java 2024.06.24

[백준 자바] 1016번(제곱 ㄴㄴ수)

난이도 - 골드 1문제어떤 정수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 그 수를 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min보다 크거나 같고, max보다 작거나 같은 제곱ㄴㄴ수가 몇 개 있는지 출력한다.입력첫째 줄에 두 정수 min과 max가 주어진다.출력첫째 줄에 min보다 크거나 같고, max보다 작거나 같은 제곱ㄴㄴ수의 개수를 출력한다.제한1 ≤ min ≤ 1,000,000,000,000min ≤ max ≤ min + 1,000,000  min~max의 수가 제곱수의 배수인지 나타내는 배열을 생성한다.(isNoeSquares)outerLoop: 2부터 루트max까지의 i의 제곱수를 계산한다.(square)                  innerL..

백준/Java 2024.06.24

[백준 자바] 24039번(2021은 무엇이 특별할까?) - 연속한 두 소수의 곱

난이도 - 실버 5문제백준 온라인 저지의 송년대회 Good Bye BOJ, 2021!의 개최일은 2021년 12월 31일이다. 원이는 대회가 개최된다는 사실이 기뻐 제목을 뚫어져라 보다가 2021이 무언가 특별하다는 사실을 깨달았다.그렇다. 2021은 연속한 두 소수 43과 47의 곱이다. 다음에 이런년도가 오려면 무려 470년 뒤인 2491년이 되어야 한다. 원이는 어떤 수가 연속한 두 소수의 곱으로 이루어져 있으면 특별한 수라 부르기로 하였다.주어진 수보다 큰 특별한 수 중 가장 작은 수를 구하는 프로그램을 작성하시오.입력첫 번째 줄에 주어진 수 𝑁$N$이 주어진다.출력첫 번째 줄에 𝑁$N$보다 큰 특별한 수 중 가장 작은 수를 출력하여라.제한 1≤𝑁≤10000$1 \le N \le 10\,00..

백준/Java 2024.06.23

[백준 자바] 6588번(골드바흐의 추측)

난이도 - 실버 1문제1742년, 독일의 아마추어 수학가 크리스티안 골드바흐는 레온하르트 오일러에게 다음과 같은 추측을 제안하는 편지를 보냈다.4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다.예를 들어 8은 3 + 5로 나타낼 수 있고, 3과 5는 모두 홀수인 소수이다. 또, 20 = 3 + 17 = 7 + 13, 42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23 이다.이 추측은 아직도 해결되지 않은 문제이다.백만 이하의 모든 짝수에 대해서, 이 추측을 검증하는 프로그램을 작성하시오.입력입력은 하나 또는 그 이상의 테스트 케이스로 이루어져 있다. 테스트 케이스의 개수는 100,000개를 넘지 않는다.각 테스트 케이스는 짝수 정수 n 하나로 이루어져 있다. (6 ≤ ..

백준/Java 2024.06.23
728x90