no image
[Algorithm] 에라토스테네스의 체 -JAVA
1. 에라토스테네스의 체고대 그리스의 수학자 에라토스테네스가 만들어 낸 소수를 찾는 방법이 방법은 마치 체로 치듯이 수를 걸러낸다고 하여 에라토스테네스의 체라고 부른다. 2. 방법예시 1~144 범위에서 소수를 구하라1. 소수도, 합성수도 아닌 자연수 1을 제거 2. 2를 제외한 2의 배수를 제거 3. 3을 제외한 3의 배수를 제거 4. 5를 제외한 5의 배수 제거 (4의 배수는 2의 배수에서 지워졌다.) 5. 7를 제외한 7의 배수 제거 (6의 배수는 2의 배수에서 지워졌다.) 6. 11를 제외한 11의 배수 제거 (8의 배수는 2의배수, 9의 배수는 3의 배수, 10은 2의배수에서 지워짐) 이런 방법으로 2배수, 3배수, ... n배수를 지우다보면 소수만 남게된다. 이런 방법으로 n이하의 소수를 모두..
2025.03.12
no image
JAVA [Programmers] 1단계 - 가장 가까운 같은 글자
📝문제 설명  📢입출력 예시 ✏️문제 풀이 1. 배열 풀이class Solution { public int[] solution(String s) { int[] answer = new int[s.length()]; int[] alph = new int[26]; for(int i=0; i 2. Map 풀이import java.util.*;class Solution { public int[] solution(String s) { int[] answer = new int[s.length()]; Map map = new HashMap(); for(int i=0; i💡새로 알게된 점
2025.02.06
no image
JAVA [Programmers] 2단계 - 다리를 지나는 트럭
📝문제 설명 📢입출력 예시 ✏️문제 풀이트럭이 오른쪽에서 들어오고, 트럭이 왼쪽으로 한 칸씩 이동하여 다리를 빠져 나간다고 생각하면 된다.1초 [0 7] (다리에 7kg 트럭이 진입)2초 [7 0] (7kg 트럭이 다리 한 칸 앞으로 감)3초 [0 4] (다리에 4kg 트럭이 진입)4초 [4 5] (4kg 트럭이 다리 한 칸 앞으로 간뒤, 다리에 5kg 트럭이 진입)5초 [5 0] (5kg 트럭이 다리 한 칸 앞으로 감)6초 [0 6] (다리에 6kg 트럭이 진입)7초 [6 0] (6kg 트럭이 다리 한 칸 앞으로 감)8초 [0 0] (다리 위가 비었으니 종료) 핵심은 뒷 트럭이 없는 곳은 0을 밀어 넣어 다리 위에 트럭이 있고, 이동한다고 생각해야 한다.단 진입해야 할 트럭이 없을 경우 0을 넣지 ..
2025.02.01
no image
[Algorithm] 진법 변환
N진법 -> 10진법Integer.parseInt(값, N); 10진법 -> N진법Integer.toBinaryString(number); // 2진법Integer.toOctalString(number); // 8진법Integer.toHexString(number); // 16진법
2025.01.24
no image
[Algorithm] 투 포인터 알고리즘
1. Two Pointer Algorithm 정의- 1차원 배열에서 각자 다른 원소를 가리키고 있는 두 개의 포인터를 만들어서 각각이 가리키는 원소에 의미를 부여하여 요구하는 문제를 해결하는 알고리즘- 쉽게 말해 '두 개의 포인터'를 사용하여 '특정 조건을 만족하는 부분 구간'을 효율적으로 탐색하는 알고리즘- 배열이나 리스트가 정렬되어 있을 때 사용된다.- 정렬의 필요 여부는 기억해야할 과거 정보에 의존한다. 예를들어 i~j까지의 구간의 합 중 최대 값을 구하려면 기존 배열의 값들에서 슬라이딩 윈도우 기법으로 구해야 한다. 이 때는 정렬이 필요가 없다.  2. Two Pointer Algorithm 수행 단계1. 배열 또는 리스트의 시작 위치에 start, end 포인터를 설정한다.2. 두 포인터 사이의..
2025.01.12
no image
JAVA [Algorithm] - 백준 14888 연산자 끼워 넣기
📝문제 설명📢입출력 예시 ✏️문제 풀이우리는 지금까지 백트래킹 문제를 해결 했을 때 재귀함수로 호출하기 때문에depth가 마지막까지 도달했을 때 즉, 재귀함수(stack)의 마지막 부분부터 로직을 처리하였다. 이번 문제는 연산을 맨 앞부터 수행해야 한다는 점이 지금까지 풀었던 문제와 약간 다른 문제다.그러므로 생각해야될 것은 1. 연산을 수행했으면 그 다음 재귀함수에게 값을 어떻게 전달해 줄 것인가?2. 연산을 어떻게 앞부터 수행할 것인가?3. 연산이 완료 되었으면 어떻게 최소, 최대 값을 비교할 것인가? 1번을 먼저 해결하기 위해서는 재귀함수에게 연산 후의 값을 매개변수로 전달해주는 식으로 해야한다.2번을 해결하기 위해서는 1번에서 해결한 문제인 매개변수로 값을 전달해줄 때 switch나 if문으로..
2025.01.08
no image
JAVA [Algorithm] - 백준 14889 스타트와 링크
📝문제 설명 📢입출력 예시 ✏️문제 풀이우선 N 값마다 만들 수 있는 팀의 경우의 수를 생각해보자N = 4 인 경우                       N = 6인 경우(0, 1) VS (2, 3)                         (0, 1, 2) VS (3, 4, 5)(0, 2) VS (3, 4)                         (0, 1, 3) VS (2, 4, 5)(0, 3) VS (1, 2)                         (0, 1, 4) VS (2, 3, 5)                                                 (0, 1, 5) VS (2, 3, 4)                                        ..
2025.01.08
no image
JAVA [Algorithm] - 백준 9663 N-Queen
📝문제 설명 📢입출력 예시 ✏️문제 풀이백트래킹의 대표적인 문제로 백트래킹의 근본 문제라고 볼 수 있다.N-Queen 문제 이해가 잘 안된다면 밑의 링크를 통해 어떤 방식으로 접근해야 되는지 알아보자.https://namu.wiki/w/%EC%97%AC%EB%8D%9F%20%ED%80%B8%20%EB%AC%B8%EC%A0%9C 여덟 퀸 문제여덟 퀸 문제는 1848년 막스 베첼이 처음으로 제안한 퍼즐 문제로, 수학 과 컴퓨터과학 에서 알고리즘 문제namu.wiki 우리가 고려해야 될 점은 단 2가지이다.1. 재귀함수를 어떻게 호출할 것인가. (매개변수 설정)2. 같은 행,열, 대각선에 있는지 어떻게 판단할 것인가. 내가 보기엔 이 두가지만 해결하면 문제를 풀 수 있을 것 같았다. 사실 이 문제는 내 지..
2025.01.07