IT377 [ps java] BOJ 9251 LCS 해설 LCS 웰-노운 DP 문제이다 [골드5]자주 쓰이는 곳이 많으니, 완벽히 숙지하자!https://www.acmicpc.net/problem/9251 LCS(Longest Common SubSequance): 최장 공통 부분 수열 문제LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.입력첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다.출력첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다.예제 입력 1ACAYKPCAPCAK예제 출력.. 2025. 3. 18. [ps java] BOJ 9465 스티커 해설 조금 생각해봐야 하는 DP 문제이다 [실버1]2개의 dp를 돌려야만 풀 수 있는 좋은 문제! https://www.acmicpc.net/problem/9465 문제상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다.상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다. 모든 스티커를 붙일 수 없게된 상냥이는 각 스티커에 점수를 매기고, 점수의 합이 최대가 되게 스티커를 떼어내려고 한다. 먼저, 그림 (b)와 같이 각 스.. 2025. 3. 17. [SW 설계 원칙] SOLID 원칙과 그 진정한 의미 ㅁSOLID 원칙: 객체지향 설계의 핵심 원칙 소프트웨어 개발에서 유지보수성과 확장성을 높이기 위해서는 올바른 설계 원칙을 따르는 것이 중요하다. SOLID 원칙은 이러한 객체지향 설계를 효과적으로 수행할 수 있도록 돕는 다섯 가지 핵심 원칙을 의미한다. 이 원칙들은 로버트 C. 마틴(Robert C. Martin)에 의해 정립되었으며, 특히 객체지향 프로그래밍(OOP)에서 널리 사용된다. 1. SRP(Single Responsibility Principle, 단일 책임 원칙)"클래스는 단 하나의 책임만 가져야 한다."단일 책임 원칙은 하나의 클래스가 하나의 역할만 수행하도록 설계해야 한다는 원칙이다. 즉, 하나의 클래스는 변경이 필요한 이유가 단 하나뿐이어야 한다. 이를 통해 코드의 응집도를 높이고, .. 2025. 3. 17. [Java API] 함수형 프로그래밍 익숙해지기(java.util.function 패키지) https://claremont.tistory.com/entry/Java-Stream-API%EC%99%80-%ED%95%A8%EC%88%98%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D [Java] Stream API와 함수형 프로그래밍Java 8부터 도입된 Stream API는 프로그래밍 스타일을 완전히 바꿔놓았다고 해도 과언이 아니다. 처음에는 그냥 반복문을 대체하는 기능 정도로만 생각했는데, 쓰면 쓸수록 '이거 꽤 강력한데?'라는claremont.tistory.com먼저 함수형 프로그래밍이 뭔지! 개념에 대해 알고 오자 :> Java에서는 람다 표현식(Lambda Expressions)을 활용하여 간결한 코드 작성을 지원하기 위해 표준 함수.. 2025. 3. 17. [Java] Stream API와 함수형 프로그래밍 Java 8부터 도입된 Stream API는 프로그래밍 스타일을 완전히 바꿔놓았다고 해도 과언이 아니다. 처음에는 그냥 반복문을 대체하는 기능 정도로만 생각했는데, 쓰면 쓸수록 '이거 꽤 강력한데?'라는 느낌이 든다. 특히, 함수형 프로그래밍 스타일과 맞물려서 사용하면 코드가 훨씬 깔끔해지고 유지보수가 편리해진다. ㅁStream API: 컬렉션(List, Set 등)의 요소들을 선언형(declarative) 방식으로 처리할 수 있게 도와주는 기능기존의 for-each 문을 사용한 코드보다 훨씬 간결하게 데이터를 필터링하거나 변환할 수 있다 (기존의 반복문 방식)public static void withoutStream() { String[] arrayOfStrings = {"A", "B", "C".. 2025. 3. 14. [Java] 버전 수정 기여(김영한의 실전 자바 - 중급 1편) Java Spring 생태계의 거장이신 김영한님 강의를 매우 좋아한다김영한님의 많은 강의들을 결제했으며, 그중 Java 강의는 현재 중급 2편까지 완강한 상태이다! 오랜만에 다시 들어가서 강의를 보는데 재밌는 걸 발견했다 이전에 교재에 오타가 있어 제보를 했더니, 정말 감사하게 수정 이력에 내 이름을 넣어주셨다(클레어몬트) 물론 큰 기여는 아닐지라도, 내가 정말 좋아하는 강의에 보탬이 됐다는 게 행복하고 뿌듯하다 😊#SK, #SKALA, #SKALA1기 2025. 3. 14. [SW 설계 원칙] 의존성 주입(DI, Dependency Injection) 쉽게 이해하기(w/Python) https://claremont.tistory.com/entry/SW-%EC%84%A4%EA%B3%84-%EC%9B%90%EC%B9%99-SOLID-%EC%9B%90%EC%B9%99%EA%B3%BC-%EA%B7%B8-%EC%A7%84%EC%A0%95%ED%95%9C-%EC%9D%98%EB%AF%B8 [SW 설계 원칙] SOLID 원칙과 그 진정한 의미ㅁSOLID 원칙: 객체지향 설계의 핵심 원칙 소프트웨어 개발에서 유지보수성과 확장성을 높이기 위해서는 올바른 설계 원칙을 따르는 것이 중요하다. SOLID 원칙은 이러한 객체지향 설계를 효과적claremont.tistory.com 괜히 쫄 거 없다!정말 간단한 개념이다예제를 통해 의존성 주입이 무엇인지 알아볼 거고, 언어는 제일 가독성이 좋은 파이썬을 .. 2025. 3. 13. [딥러닝] Gradio: "이렇게 간단히 인터페이스를 만들 수 있다고?" ㅁGradio: 머신러닝(ML) 및 딥러닝(DL) 모델을 쉽게 배포하고 웹 인터페이스를 생성할 수 있도록 도와주는 Python 라이브러리 Streamlit과 비슷한 느낌이다! HTML이나 JavaScript를 몰라도 코드 몇 줄이면 웹 UI를 만들 수 있기 때문에, 연구자와 개발자가 모델을 빠르게 공유하고 실험할 때 매우 유용하다.개인적으로 처음 Gradio를 접했을 때, "이렇게 간단하게 인터페이스를 만들 수 있다고?"라는 생각이 들 정도로 직관적이었다. 특히, 머신러닝 모델을 직접 웹에서 테스트하는 데 많은 시간을 절약할 수 있어서 아주 편리했다. [Gradio 특징 정리]1. 간편한 인터페이스 생성HTML, CSS, JavaScript 같은 웹 개발 지식 없이도 Python 코드 몇 줄로 UI를 .. 2025. 3. 11. [생성형 AI] LangChain과 멀티모달 모델을 활용한 스마트 냉장고 앱 만들기 실습 https://claremont.tistory.com/entry/%EC%83%9D%EC%84%B1%ED%98%95-AI-LangChain%EC%9D%B4%EB%9E%80 [생성형 AI] LangChain이란?ㅁLangChain: LLM을 활용하여 응용 프로그램을 개발하는 프레임워크주로 OpenAI의 GPT, Google의 PaLM, Meta의 Llama 등 다양한 LLM과 통합하여 문서 검색, 데이터 분석, 자동화된 AI 응답 시스템 등을 구축하는claremont.tistory.comhttps://claremont.tistory.com/entry/LangChain-%EA%B8%B0%EC%B4%88-LLM%EA%B3%BC-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EC%97%94%.. 2025. 3. 11. 이전 1 ··· 3 4 5 6 7 8 9 ··· 42 다음