전체 글
-
[유클리드 호제법] 최대공약수와 최소공배수알고리즘/정수론 2024. 5. 2. 17:43
유클리드 호제법은 최대공약수를 구하는 알고리즘이다. 최대공약수를 구해서 최소공배수 까지 구할수 있다.유클리드 호제법은 mod 연산을 통해 재귀함수 형식으로 구현한다. 두 개의 숫자 8,10이 있다고 가정하면 처음 두 값의 나머지 연산을 수행한다. 8 % 10 = 8 나머지 연산을 통해 나온 결과 값 8을 나누는 수로 넣어주고 처음 나누는 수를 나눠지는수에 넣어준다. 이렇게 다음 식은 10 % 8 = 2 가 된다. 그러면 또 똑같이 결과값 2를 나누는 수로 넣어주고 원래 연산에서 나누는 수를 나눠지는 수에 다시 넣어준다.8 % 2 = 0 이렇게 나머지가 0이 될때의 나누는 수가 두 숫자의 최대 공약수가 된다.최소공배수는 두 숫자를 곱해준 다음 최대공약수로 나누어준다면 구할 수 있다.10 * 8 / 2 =..
-
[알고리즘] 깊이 우선 탐색(DFS)알고리즘/DFS 2024. 3. 19. 22:29
DFS란? 깊이 우선 탐색으로 그래프 완전 탐색 기법중 하나로 탐색할 분기를 하나 정해 최대 깊이 까지 탐색을 마친 후 다른 분기로 이동하여 다시 탐색을 수행하는 알고리즘이다. DFS는 스택 이나 재귀 함수 구조로 구현한다. DFS는 한번 방문한 노드를 다시 방문하면 안되므로 노드 방문 여부를 체크하는 배열이 필요하다. DFS 탐색 하기 - 탐색은 재귀 함수 구조로 탐색해보려 한다. 0번부터 5번까지 노드와 간선이 존재하는 그래프이다. 이 그래프를 표로 표현해보면 노드(V) 연결된 노드 0 2 4 5 1 4 5 2 0 3 4 3 2 4 0 1 2 5 5 0 1 4 - 0번 노드는 2번, 4번, 5번 노드와 연결되어 있다. - 1번 노드는 4번, 5번 노드와 연결되어 있다. - 2번 노드는 0번, 4번 노..
-
[Java] String 클래스 문자열 포함 : indexOf(), contains()Java/String 2024. 3. 17. 17:52
특정 문자열의 처음 나타나는 위치 : indexOf() public int indexOf(String str) - 해당 문자(str)이 문자열에서 처음으로 나타나는 위치를 반환한다. public class Main { public static void main(String[] args) { String str = "Hello World"; int index = str.indexOf("l"); System.out.print(index); } } //출력 결과 : 2 - 문자 "l"이 처음으로 나타나는 위치의 인덱스인 2를 반환해준다. public class Main { public static void main(String[] args) { String str = "Hello World"; int inde..
-
[Java] String 클래스 접미사와 접두사 확인 : endsWith(), startsWith()Java/String 2024. 3. 15. 15:43
접미사 확인 : endsWith() public boolean endsWith(String suffix) - 문자열이 주어진 suffix로 끝나는지 확인하는데 사용한다. public class Main { public static void main(String[] args) { String str = "Hello World"; boolean isSuffix = str.endsWith("World"); System.out.print(isSuffix); } } //출력 : true public class Main { public static void main(String[] args) { String str = "Hello World"; boolean isSuffix = str.endsWith("Hello"..
-
[Java] String 클래스 문자열 조합 : join()Java/String 2024. 3. 15. 15:29
문자열 조합 : join() public static String join(CharSequence delimiter, CharSequence... elements) - delimiter : 문자열 요소 사이에 삽입될 구분자 - elements : 결합될 요소들을 나타내는 문자열, 0개 이상의 문자열을 받을 수 있다. public class Main { public static void main(String[] args) { String[] words = {"Java", "is", "awesome"}; String str = String.join("" , words); System.out.print(str); } } // 출력 : Javaisawesome - 구분자가 ""으로 빈문자열이 므로 문자열을 붙이..
-
[Java] String 클래스 문자열 반복 : repeat()Java/String 2024. 3. 15. 15:18
문자열 반복 : repaet() - 주어진 문자열을 지정된 횟수만큼 반복하여 새로운 문자열을 생성한다. public class Main { public static void main(String[] args) { String str = "hello"; String repeat = str.repeat(3); System.out.println(repeat); } } - 음수를 인수로 받으면 IllegalArgumentException이 발생한다. 음수 값을 사용할 수 없다. public class Main { public static void main(String[] args) { String str = "hello"; String repeat = str.repeat(-1); System.out.printl..
-
[Nodejs] Error: listen EADDINUSE : address already in use :::8080Nodejs 2023. 11. 12. 02:28
평소처럼 express를 실행시키려는데 이와 같은 에러가 떴다. 에러 내용을 보면 8080포트를 이미 사용하고 있어서 사용할 수 없다고 한다. 그래서 현재 8080포트를 사용하는 프로세스를 찾아서 종료시키려고한다. 나는 윈도우를 사용하기때문에 netstat -ano | findstr 포트번호 netstat -ano | findstr 8080 를 입력해주면 아래와 같이 나온다. 현재 8080을 사용하고 있는 프로세스의 ID를 확인할 수 있다. ID를 확인했으면 이 프로세스를 종료시켜주면 된다. taskkill /F /PID 프로세스아이디 taskkill /F /PID 5188 이러면 프로세스가 종료되면서 다시 express를 실행시켜보면 정상적으로 실행된다. 코딩 끝나고 터미널 종료를 잘 시켜줘야겠다.