목록전체 글 (25)
enginner_s2eojeong

이 문제의 핵심은 단조성이다. 단조성이란 어떤 값이 계속 증가하거나 감소하는 성질을 의미한다.이 문제에서 우리가 찾고자 하는 것은 M개의 풍선을 만들기 위한 최소 시간인데 그 시간을 기준으로 보면 "어떤 시간 t에서 가능했다면, 그보다 더 큰 시간에서도 가능하다" 는 규칙이 성립한다.t 시간 안에 M개의 풍선을 만들 수 있다면,t+1, t+2, ... 같은 더 큰 시간에서도 M개 이상을 만들 수 있다. 이런 특성을 보일 때, 단조성을 띈다고 한다. 따라서 이 문제는 답이 단조 증가하는 특성이 있으므로이분 탐색을 적용하면 O(log T * N) 의 시간 복잡도로 해결할 수 있다. 1. 시간의 범위를 설정최소 시간 l = 1최대 시간 r = 10^12 (최악의 경우 -> 어떤 사람이 1개의 풍선을 만드는데 ..

문제의 핵심은 주어진 색종이를 같은 색으로만 이루어진 작은 종이들로 쪼개고, 각각 몇 개가 나오는지 세는 것.분할 정복으로 해결해봤다. 먼저, divConq라는 재귀 함수를 정의했다.이 함수는 현재 보고 있는 영역이 한 가지 색으로 이루어져 있는지 확인한다.만약 모두 같은 색이라면, white 또는 blue 개수를 증가시키고 끝낸다.아니라면, 색이 섞여 있다는 뜻이므로 4등분 해서 다시 검사한다.그렇게 해서 최종적으로 하얀색 종이와 파란색 종이의 개수를 출력하면 끝이다. 사실 난이도가 높지않은 문제지만 분할 정복을 처음 접하는 사람들에게 입문용으로 추천..!#include #include using namespace std;int white=0, blue=0;void divConq(vector>& pap..

1. 웹 서버 (Web Server)클라이언트의 요청을 받아 정적인 웹 페이지(HTML, CSS, JavaScript, 이미지 등)를 제공하는 서버정적 콘텐츠를 처리하는 역할1. 주요 기능정적 리소스 제공 (HTML, CSS, JavaScript, 이미지, 동영상 등)클라이언트의 HTTP 요청을 받아 응답리버스 프록시(Reverse Proxy) 역할 가능 (요청을 다른 서버로 전달)부하 분산 수행 가능2. 대표적인 웹 서버Apache HTTP ServerNginxIIS3. 웹 서버 동작 방식사용자가 브라우저에서 www.helloworld.com을 요청웹 서버가 요청된 URL에 해당하는 HTML, CSS, JS 파일을 찾아 응답사용자의 브라우저가 해당 파일을 해석하여 화면을 구성📌 웹 서버는 보통 정적인..

4. 회원 도메인 개발5. 상품 도메인 개발6. 주문 도메인 개발7. 웹 계층 개발작년 하반기에 스프링부트 스터디를 진행하며 노션에 정리해놓았던 내용들입니다. 최근 연합 프로젝트를 진행하면서 당시 공부한 내용을 실제로 적용해볼 수 있었고 덕분에 JPA와 스프링 부트에 대한 개념을 더욱 확실히 다질 수 있었습니다. 이번에는 그 경험을 복습할 겸 좀 더 다듬고 정리된 형태로 블로그에도 공유해보려 합니다. 1편" data-og-description="1. 들어가기 전 - 용어 정리2. 도메인 분석 설계3. 애플리케이션 구현 준비 작년 하반기에 스프링부트 스터디를 진행하며 노션에 정리해놓았던 내용들입니다. 최근 연합 프로젝트를 진행하면서 " data-og-host="s2eojeong.tistory.com" d..

1. 들어가기 전 - 용어 정리2. 도메인 분석 설계3. 애플리케이션 구현 준비 작년 하반기에 스프링부트 스터디를 진행하며 노션에 정리해놓았던 내용들입니다. 최근 연합 프로젝트를 진행하면서 당시 공부한 내용을 실제로 적용해볼 수 있었고 덕분에 JPA와 스프링 부트에 대한 개념을 더욱 확실히 다질 수 있었습니다. 이번에는 그 경험을 복습할 겸 좀 더 다듬고 정리된 형태로 블로그에도 공유해보려 합니다.1. 들어가기 전 - 용어 정리@Repositorypublic class MemberRepository { @PersistenceContext private EntityManager em; public Long save(Member member){ em.persist(member);..

[코드]#include using namespace std;int main(){ string word; int arr[26]; int k, cnt[26]={0}; for(int i=0; i> word; for(int i=0; i [해설]arr[26] 배열은 알파벳 26자 각각이 입력받은 단어에 포함되어 있는 경우 해당 문자의 위치를 출력하기 위해 선언했다. 알파벳이 입력받은 문자에 없을 때는 -1을 출력해야하므로 그냥 처음부터 -1로 싹 다 초기화 하고 시작했다. 사용자로부터 입력받은 단어에서 첫 글자부터 마지막 글자까지 for문을 돌면서 ASCII 코드를 이용해 각 알파벳이 알파벳 'a'와의 차이(10진수)만큼이 arr 배열에서의 index가 된다. 그리고 입력받은 word ..

[1차 코드]#include #include #include using namespace std;int main(){ int height[9], sum=0; for(int i=0; i> height[i]; sum+=height[i]; } sort(height, height+9); int i, j, I, J, t=0; for(int i=0; i arr; for(int k=0; k [해설]한국정보올림피아드 초등부 문제였다는데 내가 아직 코린이라 처음엔 틀린 답이 계속 나왔었다... 흑흑9명의 난쟁이들의 키를 for문에서 입력값으로 받아 height[] 배열에 저장과 동시에 sum에도 누적합을 구해놓았다. 이후 height 배열을 sort를 사용해서 오..