[JAVA] 2581번 소수 🤎2 : 에라토스테네스의 체 알고리즘으로 시간복잡도를 줄이자!
·
Baekjoon
https://www.acmicpc.net/problem/2581문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오.예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 입력입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다.M과 N은 10,000이하의 자연수이며, M은 N보다 작거나 같다.출력M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을..
[JAVA] 2231번 분해합 🤎2 : 구현만 하면 되는데...! 😂
·
Baekjoon
https://www.acmicpc.net/problem/2231 문제어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다.자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오.입력첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다.출력첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다.해설 및 생각결론 먼저 말하자면 진짜 ..
[JAVA] 2798번 블랙잭 🤎2 : 나의 첫 무서운 브루트포스 알고리즘 풀이
·
Baekjoon
https://www.acmicpc.net/problem/2798 입력첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다.합이 M을 넘지 않는 카드 3장을 찾을 수 있는 경우만 입력으로 주어진다.출력첫째 줄에 M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 출력한다. 나의 생각문제 이해 자체는 그렇게 어렵지 않다. 그냥 N번만큼 숫자를 받고 3개씩 더해서 그 합이 M을 넘지 않으면서 M과 최대한 가깝게 하는 합을 구하면 되는 것이다.와 근데 딱 든 생각은 아니 경우의 수가 너무 많은데??? 였다.그래서 최대한 간결하게 풀 수 있는 방법이 없을까... ..
[JAVA] 10809번 알파벳 찾기 🤎2 : 아스키코드를 활용한 문자열 갯수 카운팅하기!
·
Baekjoon
https://www.acmicpc.net/problem/10809 Baekjoon 10809번 문제는 주어진 문자열에서 각 알파벳이 처음 등장하는 위치를 구하는 문제 import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); // 각 알파벳의 등장 위치를 저장할 배열 초기화 int[] positions = new int[26]; for (int i = 0; i 문자열을 카운팅 하고 싶을 때 문자- '0'을 하면 아스키코..
[JAVA] String trim() 메서드 : 문자열의 앞뒤에 있는 모든 공백 문자를 제거해주는 아주 좋은친구 소개
·
Java & Kotlin
https://www.acmicpc.net/problem/1152 Java에서 사용자 입력을 다룰 때, 문자열의 양 끝에 불필요한 공백이 포함될 수 있습니다. 이러한 공백을 제거하는 것은 데이터 처리의 정확성을 높이는 데 필수적입니다. 이번 글에서는 trim() 메서드의 사용법과 Baekjoon Online Judge의 문제 1152번을 예제로 설명하겠습니다.trim() 메서드란?trim() 메서드는 문자열의 앞뒤에 있는 모든 공백 문자를 제거합니다. 문자열 내에 포함된 공백에는 영향을 미치지 않으며, 반환된 문자열은 원래의 문자열에서 앞뒤 공백이 제거된 상태입니다. String trimmedString = originalString.trim(); 실용적인 예제: Baekjoon 1152번 문제 해결하기..
[JAVA] charAt() 메서드(문자열에서 문자 뽑기)
·
Java & Kotlin
https://www.acmicpc.net/problem/2588 위 문제를 보면 385, 472 등 입력받은 정수에 대해 곱셈 과정을 보여줘야 하기때문에 해당 정수를 한자릿수 씩 떼어낼 수 있어야 한다. 처음엔 /, % 연산자를 이용해서 각 자릿수를 구해볼까도 생각해봤는데 charAt() 메서드를 이용하면 더욱 더 쉽게 구할 수 있다. 결론부터 말하자면 charAt() 메서드는 문자열의 index값 통해 문자를 읽어오는 메서드이다. 예를 들자면 , String str = "가천대학교" 라는 문자열이 있으면str.charAt(0) = '가'str.charAt(1) = '천'str.charAt(2) = '대'str.charAt(3) = '학'str.charAt(4) = '교'이렇게 각 문자열 index에..