전체 글 101

[자바] 정규표현식 정리 (ReplcaceAll)

정규표현식 문법과 예제^,$ - 문자열의 시작과 끝^regex : 문자열의 시작이 regex 에 해당하는 경우regex$ : 문자열의 끝이 regex에 해당하는 경우String result1, result2;String str = ".123!";result1 = str.replaceAll("^.", "*");System.out.println(result1);result2 = str.replaceAll("!$", "*");System.out.println(result2);// 출력*123!.123* [ ] - 문자의 집합 범위"." 는 일반적으로 모든 문자를 의미하지만 대괄호 '[]' 안에 있을 경우는 문자 그대로의 '.' 을 의미합니다/[abc] : a, b, c 중 문자 1개[abc][xyz] : a,..

알고리즘 2024.08.18

[자바정렬] Arrays.sort() Collections.sort()

1차원 배열 오름차순 정렬// 1차원 배열 오름차순 Sortint[] nums = { 2, 4, 9, 8};Arrays.sort(nums);System.out.println(Arrays.toString(nums));//결과 [2, 4, 8, 9] 1차원 배열 내림차순 정렬 (for문 활용)// 1차원 배열 내림차순 Sort   int[] nums = { 2, 4, 9, 8};        Arrays.sort(nums);        for(int i=0; i   1차원 배열 Stream 정렬 // 1차원 배열 내림차순 Sort   int[] nums = { 2, 4, 9, 8};   int[] descNums = Arrays.stream(nums)                   .boxed().sor..

알고리즘 2024.08.06

[수학1]소수

Prime Number 소수 : 약수가 1과 자기 자신 밖에 없는 수 N 이 소수가 되려면, 2보다 크거나 같고 , N-1 보다 작거나 같은 자연수로 나누어 떨어지면 안된다. 1 부터 100 까지 소수 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97 소수와 관련된 알고리즘은 두가지가 있다. 1. 어떤 수 N 이 소수인지 아닌지 판별하는 방법 2. N 보다 작거나 같은 모든 자연수 중에서 소수를 찾아내는 방법(N 이하의 소수를 찾아내는 방법) 방법 1.소수의 정의를 이용한 풀이_시간복잡도 O(N) public static boolean isPrime(int a){ if (a == 1){ return false; } for (in..

알고리즘 2022.07.26

[수학1]최소공배수

Least Common Multiple 최소공배수는 줄여서 LCM 이라고 한다. 두 수의 최소공배수는 두 수의 공통된 배수 중에서 가장 작은 정수이다. 최소 공배수는 GCD (최대 공약수)를 응용해서 구할 수 있다. A x B = GCD * LCM (두 수의 곱은 최소공배수와 최대공약수를 곱한 값과 같다.) 두 수 a,b 의 최대공약수를 g 라고 했을 때 최소공배수 I =(a*b)/g 이다. https://www.acmicpc.net/problem/2609

알고리즘 2022.07.25

[수학1]최대공약수

Greatest Common Divisor 최대 공약수를 줄여서 GCD 라고 쓴다. 두 수 A 와 B 이 최대공약수 G는 A 와 B 의 공통된 약수 중에서 가장 큰 정수이다. 최대공약수를 구하는 가장 쉬운 방법은 2 부터 min(A,B)까지 모든 정수로 나누어 보는 방법 최대공약수가 1인 두 수를 서로소(Comprime)라고 한다. 방법 1 . 작은 수 부터 차례로 계산해보기 int g =1; for (int i=2; i b) { small = b; }else { small = a; } for (int i=small; i > 0; i--) { if ((a % i == 0) && (b % i == 0) ){ return i; } } return -1; } 방법 3. 유클리드 호제법 위의 두 방법보다 빠른 ..

알고리즘 2022.07.25

[수학1]나머지 연산

컴퓨터의 정수는 저장할 수 있는 범위가 저장되어 있기 때문에, 답을 M 으로 나눈 나머지를 출력하라는 문제가 등장한다. (A +B ) mod M = ((A mod M) + (B mod M)) mod M (A x B) mod M = ((A mod M) x (B mod M)) mod M 나눈 기의 경우에는 성립하지 않는다. (Modular Inver 를 구해야 함) 뺄셈의 경우에는 먼저 mod 연산을 한 결과가 음수가 나눌 수 있기 때문에 다음과 같이 해야 한다. (A-B) mod M = ((A mod M ) - (B mod M)+M)mod M ex ) (6-5)%3 = 1%3=1 이다 ex) (6%3 - 5%3)%3 = (0 - 2)%3 = -2 %3 = ? -- 음수의 경우 결과의 부호가 프로그래밍 언어..

알고리즘 2022.07.25

[알고리즘] - 시작 Java 입출력

Java 에서 입력은 Scanner, 출력은 System.out 을 사용한다 입력 : Scanner sc = new Scanner (System.in); (편리성) 입력은 많은 경우에는 속도가 느리기 때문에, BufferedReader 를 사용한다 BufferdReader br = new BufferdReader(new InputStreamReader(System.in));(속도 빠름) 출력이 많은 경우에는 StringBuilder 를 사용해서 한 문자열로 만들어서 출력을 한 번만 사용하거나 BufferedWriter 를 사용한다 ex) input 10,000 이하의 자연수 10,000,000 개가 적힌 파일을 입력받는데 걸리는 시간 Java (BufferedReader): 0.6585초 Java (Sc..

알고리즘 2022.05.29