2026/03 17

한컴 '오픈데이터로더 PDF'에 대한 생각

개요아침에 일어나서 천천히 잠을 깨고 핸드폰으로 유튜브를 보고 있었는데 상단 바에서 구글뉴스 알람이 왔다.뉴스의 제목이 [ 한컴 '오픈데이터로더 PDF', 출시 일주일 만에 깃허브 트렌딩 1위 달성 ] 라서 흥미가 생기지 않을 수가 없었다.그래서 대체 한컴의 '오픈데이터로더 PDF'가 무엇이지 알아보고 기술적으로 어떤 면이 있는지 조사해봤다. 1. 한컴 '오픈데이터로더 PDF'란?오픈데이터로더 PDF는 복잡한 구조의 PDF 문서를 텍스트·표·이미지 등으로 분해해 인공지능(AI)이 바로 처리할 수 있는 형태로 변환하는 기술이다. 2. 한컴이 이러한 기술을 개발해낸 배경한컴은 2025년 7월 글로벌 PDF 기술 전문 기업 듀얼랩(Duallab)과 업무협약(MOU)을 체결하고 공동 개발에 착수, 같은 해 ..

자유 2026.03.27

백 트래킹 Q43: 1부터 N까지 숫자 중 합이 10이 되는 조합 구하기 - JAVA

[문제]정수 N을 입력받아 1부터 N까지의 숫자 중에서 합이 10이 되는 조합을 리스트로 반환하는 solution() 함수를 작성하세요. 제약조건더보기백트래킹을 활용해야한다.숫자 조합은 오름차순으로 정렬되어야 한다.같은 숫자는 한 번만 선택할 수 있다.N은 1 이상 10 이하인 정수이다.입출력의 예Nresult5[ [1, 2, 3, 4], [1, 4, 5], [2, 3, 5] ] 2[ ]7 [ [1, 2, 3, 4], [1, 2, 7], [1, 3, 6], [1, 4, 5], [2, 3, 5], [3, 7], [4, 6] ][해설]1. 문제 이해본 문제는 1부터 N까지의 자연수 중 중복 없이 숫자를 선택하여 그 합이 정확히 10이 되는 모든 조합을 찾는 것입니다.제약 사항: 조합 내 숫자는 오름차순이어야..

알고리즘 2026.03.23

[백준] 5597번 문제: 과제 안 내신 분..? - JAVA

https://www.acmicpc.net/problem/5597[문제][해설]1. 문제 이해전체 상황: 1번부터 30번까지 총 30명의 학생이 있습니다.입력 데이터: 과제를 제출한 28명의 출석번호가 주어집니다.목표: 30명 중 제출하지 않은 남은 2명의 번호를 찾아 작은 번호부터 출력하는 것입니다.2. 핵심 아이디어체크리스트 활용 (Boolean Array): 30명의 상태를 저장할 수 있는 boolean 배열(isCheck)을 선언합니다. 기본값은 전부 false입니다.제출 처리: 28번의 입력을 받으면서 해당 번호의 배열 요소를 true로 변경합니다. (예: 5번이 입력되면 isCheck[4] = true)미제출자 색출: 배열을 처음부터 끝까지(0~29) 순회하며 값이 여전히 false인 인덱스를..

알고리즘/문제 2026.03.19

[백준] 10807번 문제: 개수 세기 - JAVA

https://www.acmicpc.net/problem/10807[문제][해설]1. 문제 이해정수 N개가 주어지고, 그 다음 줄에 N개의 정수가 공백으로 주어진다.그리고 마지막으로 특정 정수 v가 주어진다.👉 해야 할 일은 다음과 같다.주어진 N개의 정수 중에서값이 v와 같은 숫자가 몇 개인지 세어서 출력즉, 특정 값의 등장 횟수를 구하는 문제2. 핵심 아이디어이 문제의 핵심은 단순 탐색(브루트포스)이다.크기가 N인 배열을 만든다.N개의 정수를 배열에 저장한다.비교할 값 v를 입력받는다.배열을 처음부터 끝까지 순회하면서현재 값이 v와 같으면 카운트 증가최종 카운트를 출력한다.👉 별도의 자료구조나 정렬 없이 반복문 하나로 해결 가능[코드]public class BaekJoon_10807 { pu..

알고리즘/문제 2026.03.17

[백준] 10871번 문제: X보다 작은 수 - JAVA

https://www.acmicpc.net/problem/10871[문제][해설]1. 문제 이해이 문제는 정수 N개로 이루어진 수열 A가 주어지고, 기준값 X가 주어질 때👉 수열 A에서 X보다 작은 값만 골라서 출력하는 문제이다.출력 시 주의할 점은 다음과 같다.X보다 작은 값만 출력해야 한다.입력된 순서를 유지해야 한다. (정렬 ❌)각 숫자는 공백으로 구분하여 출력한다.2. 핵심 아이디어이 문제의 핵심은 필터링 + 순서 유지이다.N개의 숫자를 하나씩 입력받는다.각 숫자 W에 대해 W 조건을 만족하는 경우에만 결과에 저장한다.결과는 StringBuilder를 사용하여 문자열로 누적한다.이때 숫자만 추가하면 붙어서 출력되므로 " "(공백)도 함께 추가해야 한다.모든 입력 처리가 끝난 후 한 번에 출력한다..

알고리즘/문제 2026.03.17

[백준] 10872번 문제: 팩토리얼 - JAVA

https://www.acmicpc.net/problem/10872[문제][해설]1. 문제 이해 입력: 0 이상 12 이하의 정수 N출력: N! (N factorial, 1×2×…×N)특이사항: 0! = 1, N! 계산 시 재귀 함수 사용 가능 2. 핵심 아이디어 재귀 정의 사용N! = N × (N-1)!종료 조건: 0! = 1! = 1종료 조건 처리더보기더보기if (N 1) return 1; 재귀 호출더보기더보기return N * factorio(N-1);입출력Scanner로 정수 입력System.out.println()으로 결과 출력 [코드]public class BaekJoon_10872 { public static int factorio(int N) { if (N

알고리즘/문제 2026.03.16

[ IntelliJ / MySQL ] 자바프로젝트, MySQL 연동하기

1️⃣ 문제 상황Eclipse를 실습하다가 강사님이 열어준 Oracle 서버에 연결해서 DB의 내용을 연결해보았다.추후에 강사님의 서버가 아닌 내 서버에 연결하는 과제를 받았고 해당 과정을 글로 정리해봤다.2️⃣ 개념 설명Java 프로젝트에 MySQL을 연동하기 위해서 필요한 것이 있다.[ 자바프로젝트 외부 ]MySQL 서버 설치 및 실행MySQL JDBC 드라이버 (mysql-connector-java.jar)Java 프로젝트에서 JDBC 라이브러리 포함 (build path 또는 Gradle/Maven 의존성)[ 자바프로젝트 내부 ]데이터베이스와 사용자 계정JDBC URL, 사용자명, 비밀번호 등 접속 정보Java 코드에서 DriverManager.getConnection() 사용 3️⃣ 동작1. ..

프로그래밍 2026.03.16

[백준] 15649번: N과 M (1) - JAVA

더보기https://www.acmicpc.net/problem/15649[문제][해설]1. 문제 이해 문제 요약:1부터 N까지 자연수 중에서 중복 없이 M개를 선택해 길이가 M인 수열을 모두 구하는 문제입니다.출력은 사전 순으로 증가하는 순서여야 합니다.중복되는 수열은 출력하면 안 됩니다.입력:더보기N M예) 3 1 → N=3, M=1 출력 예시:중복 없이 선택길이가 M인 수열더보기123 제약:더보기1 ≤ M ≤ N ≤ 8 N과 M이 작기 때문에 완전탐색(백트래킹) 가능 2. 핵심 아이디어 완전 탐색 + 백트래킹길이 M인 수열을 만들기 위해 재귀적으로 수를 선택이미 선택한 수는 제외 (visit 배열 사용)재귀 함수 설계매 단계에서 선택할 수 있는 수를 순회선택하지 않은 수를 배열에 넣고, 재귀 호출 ..

알고리즘/문제 2026.03.16

[ Eclipse ] Eclipse에서 Servlet 설정하기

개요Spring에서는 자동으로 설정되는 것이 다시 처음부터 공부한다고 Eclipse에서 하니 어떻게 할지 몰랐다.그래서 이러한 글을 작성하게 되었다. 1. Build Path 설정 2. Configure Build Path 선택 3. Modulepath를 누르고 Add External JARs... 선택 5. 폴더에 있는 servlet파일 선택servlet-api.jar는 이전에 올린 Homebrew를 통해서 Tomcat을 설치하고 해당 폴더의 lib에서 확인할 수 있고,해당 주소는 /opt/homebrew/Cellar/tomcat@9/9.0.115/libexec/lib에 위치하고 있다. 6. 적용하기 Libraries에 적용하고 나오면 해당 프로젝트에는 servlet이 적용된다.

프로그래밍 2026.03.10

[백준] 2566번 문제 - JAVA

https://www.acmicpc.net/problem/2566[문제][해설]1. 문제 이해문제에서는 9×9 크기의 격자판이 주어지고, 총 81개의 숫자가 입력된다.각 위치에는 0 또는 100보다 작은 자연수가 들어 있다.이 중에서 해야 할 일은 다음 두 가지이다.격자판 전체에서 가장 큰 값(최댓값)을 찾는다.그 최댓값이 위치한 행과 열을 함께 출력한다.행과 열의 번호는 문제에서 1부터 시작하는 좌표 체계를 사용한다.또한 최댓값이 여러 개 존재할 수 있지만, 그 중 하나의 위치만 출력해도 된다.2. 핵심 아이디어이 문제의 핵심은 2차원 배열을 순회하면서 최댓값을 계속 갱신하는 것이다.먼저 9×9 크기의 2차원 배열을 만들어 입력값을 저장한다.이후 행과 열을 기준으로 이중 반복문을 사용하여 모든 칸을 탐..

알고리즘/문제 2026.03.09