전체 글 148

프로그래머스) 지폐 접기(level 1) - Java(자바)

문제 설명 민수는 다양한 지폐를 수집하는 취미를 가지고 있습니다. 지폐마다 크기가 달라 지갑에 넣으려면 여러 번 접어서 넣어야 합니다. 예를 들어 지갑의 크기가 30 * 15이고 지폐의 크기가 26 * 17이라면 한번 반으로 접어 13 * 17 크기로 만든 뒤 90도 돌려서 지갑에 넣을 수 있습니다. 지폐를 접을 때는 다음과 같은 규칙을 지킵니다. 조건 - 지폐를 접을 때는 항상 길이가 긴 쪽을 반으로 접습니다. - 접기 전 길이가 홀수였다면 접은 후 소수점 이하는 버립니다. - 접힌 지폐를 그대로 또는 90도 돌려서 지갑에 넣을 수 있다면 그만 접습니다. 지갑의 가로, 세로 크기를 담은 정수 리스트 wallet과 지폐의 가로, 세로 크기를 담은 정수 리스트 bill가 주어질 때, 지갑에 넣기 위해서 ..

코딩테스트 2025.06.28

프로그래머스) 추억 점수(level 1) - Java(자바)

문제 설명 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다. 그리워하는 사람의..

코딩테스트 2025.06.20

Python) EasyOCR vs PaddleOCR 성능 비교 & 코드 리뷰 [Flask Server]

1. 개요: 동화책 이미지 및 애니메이션 자막을 인식하고, 인식된 텍스트를 음성(mp3)으로 변환하는 Flask 기반 서버의 구현 및 성능 비교를 다룹니다. 주요 비교 대상은 다음과 같습니다EasyOCR + gTTS 서버paddleOCR + gTTS 서버: 각각의 구현 코드를 기반으로 구조, 처리 흐름, 인식 성능, 확장성 측면에서 비교 분석합니다.2. 전체 구조 비교 (이미지 처리는 EasyOCR 채택 후 변경된 부분)항목EasyOCR + gTTSPaddleOCR + gTTS이미지 처리 방식흑백 변환 + 이진화회색 변환 + 대비 강화 + 확대OCR 엔진 구조직접 텍스트 인식박스 검출 후 인식문장 분리정규식 기반정규식 기반TTS 처리gTTS로 문장별 생성gTTS로 문장별 생성응답 구조filename, s..

back/Python 2025.06.19

프로그래머스) 자릿수 더하기(Level 1) - 자바(Java)

문제 설명: 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. : 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.제한 사항: N의 범위 : 100,000,000 이하의 자연수입출력 예시: N = 123, return = 6 / N = 987, return = 24문제 풀이import java.util.*;public class Solution { public int solution(int n) { int answer = 0; String add = Integer.toString(n); for(int i = 0; i : 입력받는 n을 문자열로 변환: 문자열에..

코딩테스트 2025.05.29

Spring Boot) 인텔리제이[IntelliJ] 다국어 처리

실행환경IntelliJ : 2024.3.4.1Spring Boot : 3.3.10-SNAPSHOTJDK : 17.0.13 1. src/main/resources 디렉토리 밑에 파일 생성(저는 messages로 생성) 2. yml 설정spring: messages: basename: messages/message encoding: utf-8 cache-duration: 10 fallback-to-system-locale: false 3. messages 디렉토리에 언어별 Resource Bundle 추가 (messages 폴더 우클릭 -> New -> Resource Bundle 클릭) 3-1. Locales to Add 부분에 '+' 버튼 클릭 후 나라별 언어코드( ISO 639..

back/Spring Boot 2025.05.18

Spring Boot) 자주 사용하는 어노테이션(Annotation) 정리

1. Spring MVC (웹) 관련 어노테이션@Controller기능 : 해당 클래스가 Spirng MVC에서 웹 요청을 처리하는 컨트롤러임을 명시대체하는 코드 : 별도로 컨트롤러 등록할 필요 없이 자동으로 스프링 빈으로 등록됨(@Component 포함).자주 사용하는 이유 : 사용자 요청을 받아서 응답하는 기본 역할을 함. @RestController기능 : @Controller + @ResponseBody를 합친 것 : 반환값이 View가 아닌 JSON/XML 등 HTTP Response Body에 직접 들어감.사용 위치 : API 응답을 JSON으로 내보내는 REST API 작성 시 주로 사용예시 : @RestControllerpublic class ApiController { @GetMap..

back/Spring Boot 2025.04.20

JDBC) IntelliJ(Spring Boot) + MySQL 연동 / CRUD TEST

IntelliJ IDEA version : 2024.3.4.1spring boot version : v3.3.10-SNAPSHOTMySQL version : 8.0.41문서를 읽기 전에 전체 디렉토리 구조를 파악하고 읽으면 이해하기 쉬움!1. 전체 디렉토리 구조src├── main│ ├── java│ │ └── com.mc.app│ │ ├── dto 1. MySQL 계정 생성use mysql;create database 데이터베이스 이름;select host, user from user;create user '이름'@'localhost' identified by '비밀번호';create user '이름'@'%' identified by..

Database/JDBC 2025.03.20

Spring Boot) 초기 웹 개발환경 구축 방법 / JSP & tomcat 사용

실행환경 IntelliJ  : 2024.3.4.1Spring Boot : 3.4.3JDK : 17.0.13Tomcat : Spring Boot 3.4.3의 기본 Tomcat 버전( 예상 버전 : 10.1.x  ) 1. 프로젝트 생성 ( 여기선 빈 프로젝트 생성 )2. 모듈 생성 ( 프로젝트 우클릭 → 새로 만들기 → 모듈 )3. Spring Boot 클릭 → 자신한테 맞는 경로 및 언어, 타입 등등 지정 ( JSP 사용 시 무조건 War 선택!! )4. 추가하고 싶은 종석성 선택 ( Spring Boot 버전 선택 가능 )5. File → Settings 클릭 (빌드 도구 → Gradle에서 빌드 및 실행에 IntelliJ 선택 (default는 gradle) )6. build.gradle파일에서 dep..

back/Spring Boot 2025.03.06

JSP) String / List / Map 각각 데이터 처리 방식

: JSP + Servlet + AJAX 조합으로 클라이언트가 서버로 데이터를 요청하고 응답을 받는 구조 Human.java → DTO(Data Transfer Object) 역할 HelloServlet.java → 클라이언트의 요청을 받아 JSON 데이터를 응답 index.html → jQuery AJAX를 이용해 서버와 통신하고, 받은 데이터를 화면에 출력Human.java (데이터를 담는 그릇)package com.mulcam.edu.dto;public class Human { private String id; private String name; private String address; public Human() {} public Human(String id..

back/JSP 2025.03.03