Algorithm65 [LeetCode] 3201번 Find the Maximum Length of Valid Subsequence I 자바 문제 https://leetcode.com/problems/find-the-maximum-length-of-valid-subsequence-i/description/?envType=daily-question&envId=2025-07-16 문제 풀이 나누기 2를 한다는 점에 주목해보면, 수는 무조건 짝수 또는 홀수 이기 때문에 2를 나눴을 때 나머지는 무조건 0이나 1이 나온다.홀수 + 홀수 → 0 짝수 + 짝수 → 0짝수 + 홀수 → 1 리턴해야 하는 값인, 문자열 중에 두 수를 더해서 나눴을때 같은 최대 부분 문자열 수는 1. 짝수 개수 또는 홀수 개수 중 큰 수로 일괄적으로 카운팅 ex) {2, 2, 2, 2, 2, 2, 3} 인 경우 그냥 짝수 개수만큼 최대 부분문자열이 됨 2. 짝수 + 홀수 조합.. 2025. 7. 21. [백준] 2179번 비슷한 단어 자바 문제 (구현) https://www.acmicpc.net/problem/2179 문제 풀이 처음에는 문제 내용에 있는 '부분 문자열'이 LCS를 말하는 줄 알고 부분 문자열 구하는 함수를 작성하면서 메모리 초과, 시간 초과를 다 맞이했는데 구글링해서보니까 그냥 앞에서 동일한 개수만 카운팅해주면 되는 듯 하다.카운팅 함수만 그렇게 바꿔줬더니 바로 성공 떴다. ✅ 알고리즘1. 출력할 단어 두 개를 변수로 선언해두고, 순서대로 단어를 비교해나간다.2. 부분문자열 개수가 기존 가지고 있던 개수보다 클 때만 출력 단어 변수를 업데이트 한다. ⁉️ 만약 모든 단어들이 겹치는 것이 없다면, 맨 앞에 입력된 두 개의 단어를 출력해야 할 것 같아서 마지막에 max == 0 이면 맨앞 단어를 출력했는데 해당 분기문이 .. 2025. 7. 13. [백준] 22860번 폴더 정리 (small) 자바 문제 (HashMap) https://www.acmicpc.net/problem/22860 문제 풀이 문제를 꼼꼼하게 읽지 않아서 많이 애먹었다.'main 하위 디렉토리에 같은 이름의 폴더가 두 개 이상 존재할 수 없다' ← 이 조건이 main바로 하위 폴더에만 적용되는 조건인 줄 알았는데 그게 아니라 전체 하위에 같은 이름의 폴더가 없다는 뜻이었나 보다.그 말인 즉슨, '중복된 이름의 폴더는 없다' 라고 해석할 수 있는 것...^^ - main이 최상위 폴더로 고정되어 있음- 중복된 폴더는 없음- 폴더 및 파일 관계에 대한 input값은 순서 없이 랜덤하게 주어짐 이 조건만 잘 이해하고 풀었어도 시간이 이렇게 많이 걸리지는 않았을 텐데... ✅ 알고리즘1. 각 폴더 별로 하위에 있는 폴더 및 파일을 .. 2025. 7. 13. [백준] 1012번 유기농 배추 문제 (DFS) https://www.acmicpc.net/problem/1012 문제 풀이 알고리즘 오랜만에 푸는 거라 실버2 만만한 DFS 골라서 풀었는데 사소한 조건들 다 잘못해서 푸는 데 한참 걸렸다. 내가 실수한 부분: (ㅠㅠ) 1. M = 가로길이 / N = 세로길이 → 보통 문제 풀 때 무조건 순서대로 행/열 이라고 생각해서 풀어서 실수 2. DFS 조건 돌릴 때 변수 > 0 표시할 때 >= 이꼴도 들어갔어야 했는데 =안하고 계속 어디서 실수지 Print로 한참 쳐보다가 발견함.. 간단한 문제풀이 설명:반복 돌리면서 양배추 구간을 만나면 DFS로 최대 양배추 구간을 구해 Vist 표시 후에 뭉텅이 개수 구해서 return. 소스 코드 import java.io.BufferedReade.. 2025. 7. 6. [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. 이전 1 2 3 4 ··· 11 다음