[프로그래밍 사고] 이진 탐색의 원리(with 백준 공유기 설치 2110)
이번 포스팅은 이진탐색 문제를 풀이하기 위한 기준을 설정하고 그 원리를 이해하는 시간을 가져보기위해서 작성되었습니다. 이진 탐색의 조건 판단하기프로그래밍 문제는 입력, 연산, 결과로 분류할 수 있습니다.프로그램은 입력에 제약을 기반으로 적절한 연산을 적용하여 결과를 만들어 냅니다. 이진 탐색을 사용할 수 있는 문제의 경우 이 제약과 결과의 관계성을 파악할 필요가 있습니다.정확하게는 두가지가 오름차순 혹은 내림차순 관계를 가져야합니다.공유기 설치 문제를 통해 설명해보겠습니다. 공유기 설치 문제는 수직선에 나열된 집들에 특정 개수의 공유기를 설치하는 문제입니다.입력: 집들의 위치, 설치해야하는 공유기의 수출력: 설치한 공유기간의 거리들중 최솟값이 최대가 되는 거리 값제약: 설치해야하는 공유기의 수 우리는, ..
2025.06.01
no image
[프로그래밍 사고] DP문제로 알아보는 캐시의 지역성(with 프로그래머스 도둑질)
안녕하세요최근 직무 인터뷰를 위한 CS지식과 코딩테스트 공부를 병행하고 있습니다.메모리 캐시에 대한 개념을 잘 활용할 수 있는 문제를 발견하여 포스팅을 남기게 되었습니다. 프로그래머스 문제 도둑질 소개https://school.programmers.co.kr/learn/courses/30/lessons/42897해당 문제를 간략하게 요약해보겠습니다.도둑은 원형으로 배치된 집들에 침임하여 물건을 훔칠 수 있습니다.하지만 한가지 제한이 있습니다.인접한 집은 서로 보안 시스템이 연동되어 있어 옆집이 털리면 보안장치가 울립니다.보안장치가 울린 집은 털 수 없습니다. 이 경우 도둑이 집을 털 때 최대한 많은 이득을 남기는 방법을 구해야합니다. 우선 주목했던 이 문제가 조금 특이한 점은 집들이 원형을 배치되어 있다..
2025.05.28
no image
[개발] 객체지향과 상속에 대한 생각정리(with 조용호, 『오브젝트』)
최근에 조용호, 『객체지향의 사실과 오해』 를 감명깊게 읽은 후  조용호, 『오브젝트』를 열심히 읽어나가고 있습니다.  해당 책의 10장 상속편을 인상깊게 읽고 생각정리 겸 내용을 공유하기위해 글을 남기게 되었습니다. 상속이란? 일부 개발 분야를 제외하고는 모든 곳에서 객체지향적 프로그래밍이 사용됩니다.  그런의미에서 '상속'은 개발자에게 괴장히 익숙한 단어라고 생각합니다.  2학년 수업에 처음으로 C++언어로 클래스 상속개념을 접했을 때가 엊그제 같내요.  상속은 특정 객체의 코드를 상위 코드에서 재사용할 수 있도록 해주는 강력한 기능입니다.  좋은 기능이기도 하지만, 치명적인 단점이 있기에 논란이 많은 기능이고도 하지요.  상속의 단점상속을 사용하는 전제는 우선 중복코드가 발생했고 중복 코드를 없애려..
2025.01.24