전체 글 140

[Python] 백준 온라인 저지 1541 잃어버린 괄호

목차 문제 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 설계&풀이 아이디어는 옳게 접근했으나, 구현을 못했다. 요건은 간단하다. -를 기준으로 split 해주고, 나머지 애들을 다 묶어버리면 된다. 여러가지 케이스가 있는데.. 10+20-10 맨 앞이 +로 시작해서 묶이는 경우 10-20 맨 앞이 단순 숫자인 경우 10-20+30 맨 앞은 숫자, 뒤가 +로 묶이는 경우 10 하나만 들어오는 경우 10+20 +만 들어오는 경우 10-20..

[Python] 백준 온라인 저지 15649 N과 M(1)

목차 문제 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 설계&풀이 백트래킹의 기본문제다. 매번 DFS/BFS를 도망만 다녔다가 각잡고 제대로 공부해보고자.. N과M 시리즈를 시작해봤다. 요건은 간단하다. 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. - 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 백트래킹이란걸 아는 상태에서 DFS를 적용해보려고 했는데, 도저히 감..

[Python] 이코테_그리디_큰 수의 법칙

문제 ‘큰 수의 법칙'은 일반적으로 통계 분야에서 다루어지는 내용이지만 동빈이는 본인만의 방식으로 다르게 사용하고 있다. 동빈이의 큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다.단, 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없는 것이 이 법칙의 특징이다. 예를 들어 순서대로 2, 4, 5, 4, 6으로 이루어진 배열이 있을 때 M이 8이고, K가 3이라고 가정하자. 이 경우 특정한 인덱스의 수가 연속해서 세 번까지만 더해질 수 있으므로 큰 수의 법칙에 결과는 6+6+6+5+6+6+6+5 인 46이 된다. 단, 서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으로 간주한다. 예를 들어 순서대..

PS, 언어 공부 2023.01.20

[CS스터디-헤드퍼스트 디자인 패턴] 3. 반복자 패턴

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 서론 이번 포스팅에선 반복자 패턴에 대해 다뤄보도록 하겠습니다. 반복자 패턴은 접근기능과 자료구조를 분리시켜서 객체화 하여, 서로 다른 구조를 가지고 있는 저장 객체에 대해서 접근하기 위해 인퍼페이스를 통일시키고 싶을 때 사용됩니다. 참고 https://www.coupang.com/vp/products/6403382250?itemId=13700178772&vendorItemId=80951605437&src=1042503&spec=10304982&addtag=400&ctag=6403382250&lptag=10304982I13700178772&itime=20221210115503&pageType=PRODUCT&pageValue=6403382250..

[CS스터디-헤드퍼스트 디자인 패턴] 2. 커맨드 패턴

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 서론 저번 시간에 이어서 이번 시간엔 커맨드 패턴에 대해서 공부해보도록 하겠습니다. 참고 https://www.coupang.com/vp/products/6403382250?itemId=13700178772&vendorItemId=80951605437&src=1042503&spec=10304982&addtag=400&ctag=6403382250&lptag=10304982I13700178772&itime=20221210115503&pageType=PRODUCT&pageValue=6403382250&wPcid=15730553344490846187221&wRef=&wTime=20221210115503&redirect=landing&gclid=Cj0..

[CS스터디-헤드퍼스트 디자인 패턴] 1. 전략패턴

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 서론 스터디원들과 책 하나를 정해서, 각자 파트를 공부하고 주 1회 미팅마다 발표하는 시간을 갖기로 했습니다. 그렇게 해서 결정된 책은 [헤드퍼스트 디자인 패턴] 이라는 책입니다. 안그래도 디자인 패턴에 대한 무조건적인 두려움이 있었는데, 이번 기회에 조금씩 알아가보는 시간이 되었으면 좋겠습니다. 그림으로 이루어져 있어서 책은 두껍지만 생각보다 술술 읽혔기에, 정말 재밌게 공부했네요. 참고 https://www.coupang.com/vp/products/6403382250?itemId=13700178772&vendorItemId=80951605437&src=1042503&spec=10304982&addtag=400&ctag=6403382250..

[AWS] VPC에 대한 이해

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 서론 사이드 프로젝트 개발을 위해 인프라 구성 중, VPC라는 친구가 절 가로막았습니다. 생성하는 방법이야 인터넷에 차고 널렸으나, 뭘 의미하는건지 이해가 되지 않아 개념을 잡기 위해 정리합니다. 참고 https://medium.com/harrythegreat/aws-%EA%B0%80%EC%9E%A5%EC%89%BD%EA%B2%8C-vpc-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0-71eef95a7098 [AWS] 가장쉽게 VPC 개념잡기 가장쉽게 VPC 알아보기 medium.com https://my-studyroom.tistory.com/entry/AWS-VPC-%EC%83%9D%EC%84%B1%ED%95%98%EA..

DevOps/AWS 2022.11.26

[JAVA] JVM 구조 및 작동원리

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 서론 자바는 JVM(Java Virtual Machine)을 이용해 프로그램이 실행됩니다. 자바 개발자라면 JVM의 작동원리를 명확히 인지하고 있어야, 프로그램 설계 시 좀 더 명확하고 섬세한 프로그램 명세가 가능하다고 생각합니다. 워낙 기본적인 내용이지만, 깊게 파고들수록 끝도 없는 영역입니다. 최대한 이해하기 쉬운 언어들로 구성하여 설명해드리도록 하겠습니다. 본 포스팅에선 JVM의 구조와, 작동원리에 대해 작성하고자 합니다. 참고 https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EA%B0%80%EC%83%81_%EB%A8%B8%EC%8B%A0 자바 가상 머신 - 위키백과, 우리 모두의 백과사전 위키..

[Spring/Springboot] 스프링 bean과 등록 방법

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 서론 스프링 컨테이너 내부에서 서로 어떤 역할을 하는지는 대부분의 @어노테이션으로 해결이 가능합니다. 대표적으로 MVC모델에선 @Controller, @Service, @Repository 등의 어노테이션이 각각 컨트롤러, 서비스, 레파지토리를 나타내는 것으로 사용됩니다. 본 포스트에선 스프링 bean을 어떻게 등록하는지와 그 원리에 대해 알아보도록 하겠습니다. 김영한님의 인프런 스프링 강의 내용을 정리한 내용입니다. 참고 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8..

[JAVA] 자바의 직렬화(Serialization)

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 개요 자바 시스템에서, 각자 PC의 OS마다 서로 다른 가상 메모리 주소 공간을 사용하기 때문에, 이들끼리 통신하기 위해선 직렬화 라는 작업을 진행해야 합니다. 본 포스팅에선 직렬화란 어떤건지, 어떤 방식으로 이루어지는지, 어떤 상황에서 필요한지, 장단점과 유의점에 대해 알아보도록 하겠습니다. 참고 https://parkadd.tistory.com/134 [Java]자바 직렬화 (Serialization) 모든 예시 코드는 이곳에서 볼 수 있습니다. 자바 직렬화는 다음의 고민을 해결하는데 사용할 수 있다. 자바 객체를 컴퓨터에 저장했다가 다음에 다시 자바 객체로 변환할 수 없을까? 네트워크 parkadd.tistory.com https://g..