본문 바로가기

Algorithm61

[LeetCode] Unique Length-3 Palindromic Subsequences 자바 문제 https://leetcode.com/problems/unique-length-3-palindromic-subsequences/description/?envType=daily-question&envId=2025-01-04 ▫️  s 문자열이 주어질 때 3글자의 Palindrome을 만족하는 개수 리턴▫️ 단, 글자 순서 변경 X, 중복 X  문제 풀이 팰린드롬 문자의 개수가 '3개'로 정해져 있기 때문에 쉽게 구현이 가능하다.양끝쪽 글자에 대해서 가운데 오는 숫자만 중복없이 구하면 된다. ✅ 알고리즘1. 처음 인덱스와 끝 인덱스를 가르키는 start, end 변수를 선언하여 양끝쪽 문자가 같을 때까지 end-- 하며 반복문을 실행한다.2. start, end가 가리키는 문자가 동일한 경우 그 사이의.. 2025. 1. 12.
[LeetCode] Evaluate Division 자바 문제 https://leetcode.com/problems/evaluate-division/description/ ▫️equations[i] = [Ai, Bi]▫️ values[i] = Ai / Bi▫️ queries의 각 변수 쌍은 나눈 값들을 리턴하라       구할 수 없다면 -1.0 리턴하라  문제 풀이 처음 보고 든 생각은 주어진 분자 분모의 조합으로 나올 수 있는 모든 값들을 저장해두고 queries 반복하면서 도출해내고 저장해둔 값이 없으면 -1로 해야겠다고 생각했다. 그런데 주어진 equations과 values로 모든 경우의 조합을 구하는 코드를 작성하기가 어려워서 결국 다른 사람의 코드를 보고 공부했다.. 구현 아이디어가 어마어마하다..아이디어는 같지만 구현하기가 어려웠다. (대단한 사.. 2024. 11. 18.
[LeetCode] Beautiful Arrangement 자바 문제 https://leetcode.com/problems/beautiful-arrangement/description/  ▫️ 1~n까지 라벨링된 정수 n개가 있다고 가정하자 ▫️ 모든 i에 대해서 아래 조건이 하나라도 참인 n개의 순열은 Beautiful Arrangement이다    - perm[i]는 i로 나뉘거나    - i는 perm[i]로 나뉘거나▫️n이 주어질때, 만들 수 있는 beautiful arrangements 개수를 리턴하라  문제 풀이 이 문제를 포스팅해야겠다고 생각이 든 이유는 나름 참신한 DFS라고 느꼈기 때문이다.보통 순열을 만들때 사용되는 정수 배열을 arr이라 하면 방문 배열 또한 arr[i]의 사용 여부에 따라 인덱스가 visited[i]로 똑같이 따라가는데, 해당 문.. 2024. 11. 17.
[백준] 2357번 최솟값과 최댓값 자바 문제 (세그먼트 트리) https://www.acmicpc.net/problem/2357  문제 풀이 일일이 구간 내에서 for문을 돌려서 최대 최소를 구하면 시간초과가 난다.정수 배열의 특정 구간 내에서 연산을 해야 하는 세그먼트 트리의 응용 버전이다. 그래서 구간 별로 최소값과 최댓값을 미리 한번에 저장해두고 입력값을 바로 도출해 내야 한다.구간 별 최소값 및 최대값 을 저장해놓은 트리배열 2개를 각각 생성하여 따로 호출하여 출력했다.   소스 코드 public class b_2357 { static int[] arr; static int[] minTree, maxTree; public static void main(String[] args) { Scanner sc = new Scanner(Sys.. 2024. 10. 28.
[JAVA] 세그먼트 트리 (Segment Tree) 세그먼트 트리 - 연속된 구간 또는 특정 구간 내 데이터에 대한 연산을 빠르게 구할 수 있는 트리- 리프노드에는 배열의 수 자체 저장  리프노드가 아닌 노드에는 왼쪽 자식노드와 오른쪽 자식노드의 합 저장- 리프노드를 제외한 다른 모드 노드는 항상 2개의 자식을 가진다- 어떤 노드의 인덱스가 n일때, 왼쪽 자식노드는 2n이고 오른쪽 자식노드는 2n+1 이다- Full Binary Tree 이다 (N이 2의 제곱근일 경우 Perfect Binary Tree)- 리프노드가 N개인 Full Binary Tree에는 리프노드가 아닌 노드가 N-1개 있으므로  필요한 노드 개수는 2N - 1개 이다 ✅ 참고사항 : 트리 개념- 이진트리 (Binary Tree) : 각 노드가 최대 2개의 자식 노드를 가지는 트리- .. 2024. 10. 21.
[PCCP모의고사2] 3번 카페 확장 JAVA 문제 (구현) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 0초 부터 손님이 마지막으로 입장할 시간의 초까지 for문으로 돌리면서 계산하였다. i초 동안 반복하면서 1. 음료가 만들어지는 경우 / 2. 손님이 들어오는 경우 두 가지를 처리하면서 현재 인원을 계산했다. 여기서 내가 실수했던 부분은 음료가 다 만들어져서 사람이 나가자마자 바로 다음 음료를 만드는 것으로 구현했는데, 사람이 한 명 더 들어오기 전에 음료 제조가 끝나는 경우도 생각을 해주어야 했다. 그래서 처음에 몇몇 테스트케이스가 맞지않아서 해당 질문 목록에 있는 반례 예시로 다시.. 2024. 2. 19.