본문 바로가기
728x90

분류 전체보기159

BOJ - 2294번 동전 2 문제풀이 (DP, SET 사용) 문제 소개 n가지 종류의 동전을 갖고, k원의 금액을 최소 개수의 동전으로 만드는 어떻게 보면, 기본적인 dynamic programming 문제입니다. 하지만, 풀이하면서 몇 가지 실수가 있었어서 풀이 과정을 간단하게 정리해보려고 합니다. 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주 www.acmicpc.net 문제 n가지 종류의 동전이 있다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그러면서 동전의 개수가 최소가 되도록 하려고 한다. 각각의 동전은 몇 개라도 사용할 수.. 2022. 12. 28.
[NCP] 네이버 클라우드 플렛폼에서 서버 만들어보기 이번에 새로 시작하는 프로젝트에서는 로컬 DB가 아니라 웹 서버를 이용한 DB를 사용해 보고자(여러모로 편리할 것 같아서) AWS나 NCP 같은 클라우드 서비스를 찾아보다가.. NCP에서 micro 서버를 결제 수단 등록일 기준으로 1년간 무료 지원해준다고 해서 NCP에 입문하게 되었습니다. 우선 NCP 사이트에 들어갑니다. (당연히 로그인이 필요합니다.) NAVER CLOUD PLATFORM cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification www.ncloud.com 여기서 Services -> Server에 들어가 애플리케이션 서버를 생성할 .. 2022. 12. 28.
IoC, DI 그리고 컨테이너 개념 정리 제어의 역전 IoC(Inversion of Control) 제어의 역전은 스프링에만 국한된 단어가 아니라 일반적인 개발자가 모든 것을 제어(control)하는 흐름에서 벗어나 내가 호출하는 것이 아니라 프레임워크 같은 것이 대신 호출해 주는 구조를 의미합니다. (한 마디로 제어에 대한 권한이 뒤바뀌는 것을 의미한다고) 기존의 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고 실행하는 구조를 따랐습니다. 한 마디로 구현 객체가 프로그램의 제어 흐름을 스스로 조종하는 구조이며 개발자의 입장에서는 자연스러운 흐름이었죠 그런데, 지난번 DI에 대한 정리글에서 설명한 AppConfig가 의존 관계를 주입하는 등의 역할을 가져감으로써, 프로그램에 대한 제어의 흐름을 가져간 바가 .. 2022. 12. 28.
Dependency Injection: 의존관계(의존성) 주입 개념 정리 DI의 정의 DI는 Dependency Injection의 줄임말로, 우리 말로는 의존관계 주입 또는 의존성 주입이라고 표현합니다. 의존이라고 하는 단어 자체가 관계 속에서 의존하는 느낌이기 때문에, 저는 의존관계 주입이라는 용어가 더 적합하다고 이해했습니다. 그렇다면, 여기서 말하는 의존관계가 무슨 말일 까요? "A가 B에 의존한다."라고 했을 때, 이것이 의미하는 바를 다음과 같은 설명을 통해 이해할 수 있었습니다. 의존대상 B가 변하면, 그것이 A에 영향을 미친다. - 토비의 스프링 3.1 즉, B의 기능이 추가 또는 변경될 때, A에 영향을 미치는 경우 "A가 B에 의존한다."라고 표현할 수 있는 것입니다. 그렇다면, Dependency Injection은 무엇일까요? 말 그대로 의존 관계를 주입.. 2022. 12. 27.
[모든 개발자를 위한 HTTP 웹 기본 지식] 8. HTTP 헤더 2 - 캐시와 조건부 요청 캐시의 기본 동작 캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비쌈 (pc의 메모리나 하드디스크에 비해 상대적으로) 브라우저의 로딩 속도가 느리다. 이로 인해 느린 사용자 경험이 발생한다. 캐시 적용 이렇게 캐시를 적용하게 되면, 일정 시간 동안 같은 요청을 보낼 때, 네트워크를 통해서 결과를 받아오지 않고, 브라우저 캐시에 접속해서 결과를 받아오기 때문에 이 과정에서 시간이 크게 단축된다. 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험을 만들어준다. 웹 브라우저 이용시 한 번 들어갔던 사이트를 재방문할 때 매우.. 2022. 12. 26.
[Java] 자바 공부 - 4, package란? C++나 여타 다른 언어에서 프로젝트를 폴더에 나눠 관리하는 방식으로 코딩을 많이 진행했는데, 이번에 자바를 공부하니 패키지라는 단위로 소스 코드들을 나눠 관리하는 방식을 처음 접하게 되어서 공부 목적으로 자바 패키지에 대해 정리해보려 합니다. Java Package란? 자바 패키지(Java package)는 자바 클래스들을 여러 namespace로 정리하며, 소속된 각 class에 대해 고유한 namespace를 제공한다. 동일한 package 내의 class들은 서로의 package-private 및 protected 멤버들에 접근할 수 있다. 자바 패키지는 jar 파일이라는 압축 파일에 저장할 수 있으며, 클래스들을 하나씩이 아닌 묶음으로 더 빠르게 다운로드할 수 있다. - 위키백과 (자바 패키지).. 2022. 12. 26.
728x90