Algorithm/BOJ45 [백준] 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. [백준] 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. [백준] 1725번 히스토그램 자바 문제 (스택) 1725번: 히스토그램 첫 행에는 N (1 ≤ N ≤ 100,000) 이 주어진다. N은 히스토그램의 가로 칸의 수이다. 다음 N 행에 걸쳐 각 칸의 높이가 왼쪽에서부터 차례대로 주어진다. 각 칸의 높이는 1,000,000,000보다 작거나 같은 www.acmicpc.net 문제 풀이 문제 풀이에 대한 논리가 많이 어려웠다. 세그먼트 트리를 이용해서도 많이 푸는 방식인 것 같은데 나는 세그먼트 트리에 대해서 잘 몰라서 만만한(?) 스택으로 풀기로 했다. 다른 블로그 글들에 그림 포함해서 설명이 잘 나와있어서 알고리즘은 내가 보기 편한대로 다시 정리해보자면, 우선 히스토그램 순서대로 반복문을 실행하면서 높이가 증가하다가 감소하는 부분을 유의해야 한다. 왜냐하면 높이가 감소하는 순간 바로 그 .. 2022. 6. 29. [백준] 2110번 공유기 설치 자바 문제 (이분 탐색) 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 문제 풀이 이분 탐색 알고리즘이다. 이분 탐색 문제를 몇 개 풀면서 느낀 건데 약간 정답의 범위가 정수의 형태로 적당히(?) 정해지는 경우 사용하는 것 같다. 그리고 이분 탐색을 사용할 때, 이분 탐색을 코드를 작성하는 것보다 해당 값에 대해 성립하는지 확인하는 코드짜기가 더 어렵다. 이번 공유기 설치 문제도 이분 탐색으로 정답을 추려가면서 이 정답에 성립하는지를 처리하는 로직이 까다로웠다... 2022. 6. 22. 이전 1 2 3 4 ··· 8 다음