Keep walking 👩🏻‍💻 465

백준 22251번 빌런 호석 (C++)

문제 링크 : https://www.acmicpc.net/problem/22251 22251번: 빌런 호석 LED를 2개까지 바꿀 수 있을 때, 5층에서 3층, 6층, 8층, 그리고 9층으로 바꿔버릴 수 있다. www.acmicpc.net 문제 요약 1. 빌딩의 엘리베이터는 1층부터 N층까지 이용가능합니다. 2. 현재 층은 X층입니다. 3. 엘리베이터에서는 K자리수로 층이 보여집니다. (ex : K=4, X=1 -> 0001) 4. 호석이는 엘리베이터 디스플레이 중에서 최소 1개, 최대 P개를 반전시켜 층을 혼선시킬 예정입니다. 디스플레이를 반전시켜도 1이상 N이하의 층만 표시가 가능하빈다. 5. 현재 층 X에서 호석이가 반전시켜 나타낼 수 있는 층의 갯수를 구하세요. 핵심 포인트 호석이는 최대 P개의 ..

SOLID(객체 지향 설계)

좋은 소프트웨어를 설계하기 위해서는? 코드의 재사용 및 유지보수가 용이한 것이 좋은 소프트웨어다. 이를 위해 결합도(Coupling)는 낮추고 응집도(Cohesion)는 높여야한다. 예를들어 A클래스와 B클래스가 서로 의존하고 있을 경우, A코드를 수정하면 B코드에도 영향을 끼칠 수 있다. 이런 경우를 결합도가 높다고 일컫는다. 응집도는 한 모듈 내부의 처리 요소들이 서로 관련되어있는 정도를 말한다. 응집도가 높으면 해당 모듈은 하나의 책임에 집중하고 독립성이 높아져, 재사용 및 유지보수가 용이하다. SOLID (객체지향 설계) 1. SRP (Single Responsibility Principle) 단일 책임 원칙 요약 : 한 클래스는 하나의 책임만 가진다. 예시로 아래 코드는 객체지향의 '다형성'을 ..

객체와 객체지향, 그리고 객체지향 4대 특성

객체 객체란 말 그대로 대상(Object)를 뜻합니다. 사람 한 명 한 명도 객체가 될 수 있고, 책 한 권 한 권도 객체가 될 수 있습니다. 클래스와 객체, 그리고 인스턴스 [요약] 클래스 - 설계도. 공통된 특성들을 모아 정의를 내림 객체 - 클래스로 구현한 대상 인스턴스 - 객체가 메모리에 할당되어 실제 사용될때 인스턴스라 부름 사람들은 저마다 같은 속성을 가지고 있습니다. 대표적으로 얼굴, 목, 손, 발, 다리와 같은 공통적인 속성을 가지고 있습니다. 책도 마찬가지 입니다. 모든 책들은 책의 표지, 제목, 저자라는 공통된 속성을 가지고 있습니다. 여기서 사람이 공통적으로 갖는 얼굴, 목, 손, 발과 같이 공통된 속성들을 모아 정의를 내린 것이 클래스 입니다. 학교에서 흔히 '붕어빵 틀과 붕어빵'을..

백준 17615번 볼 모으기 (C++)

문제 링크 : https://www.acmicpc.net/problem/17615 17615번: 볼 모으기 첫 번째 줄에는 볼의 총 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 다음 줄에는 볼의 색깔을 나타내는 문자 R(빨간색 볼) 또는 B(파란색 볼)가 공백 없이 주어진다. 문자열에는 R 또는 B 중 한 종류만 주 www.acmicpc.net 문제 요약 1. N개의 공이 일렬로 주어집니다. 각 공의 색은 'R' 또는 'B'입니다. 2. 한 번에 한 개의 공을 선택하여 원하는 위치에 삽입할 수 있습니다. 단, 첫 번째로 선택한 공의 색과 동일한 색의 공만 선택하여 이동할 수 있습니다. 3. 최소 이동횟수로 'R'과 'B'공을 같은색끼리 모을 수 있도록 하세요. 핵심 포인트 N의 값이 최대 500..

백준 2493번 탑 (C++)

문제 링크 : https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 문제 요약 1. N개의 탑의 높이가 1열로 주어집니다. 2. 각각의 탑은 자신의 왼쪽에 위치한 탑 중 자신보다 높은 탑에게 신호를 전달할 수 있습니다. 3. 각각의 탑이 신호를 전달할 수 있는 탑의 위치를 출력하세요. 신호를 전달할 수 있는 탑이 존재하지 않을 경우 0을 출력하세요. 핵심 포인트 N의 값이 최대 500,000이 주어지므로, 무턱대로 2중 for문을 사용했다가 시간초..

백준 1446번 지름길 (C++)

문제 링크 : https://www.acmicpc.net/problem/1446 1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하이고, D는 10,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이가 주 www.acmicpc.net 문제 요약 1. 세준이는 0에서 D킬로미터 길이의 고속도로를 지나 학교를 간다. 2. N개의 지름길 정보가 주어진다. 3. 세준이가 학교에 가기 위해 운전해야 하는 거리의 최솟값을 구해라. 4. 단, 모든 길은 일방통행이고 고속도로를 역주행할 수는 없다. 핵심 포인트 이 문제에서 주의해야할 점은 문제 요약의 4번입니다. 모든 길은 일방통행이고 고속도로를 역주행할 수는 없다..

백준 2234번 성곽 (C++)

문제 링크 : https://www.acmicpc.net/problem/2234 2234번: 성곽 첫째 줄에 두 정수 n, m이 주어진다. 다음 m개의 줄에는 n개의 정수로 벽에 대한 정보가 주어진다. 벽에 대한 정보는 한 정수로 주어지는데, 서쪽에 벽이 있을 때는 1을, 북쪽에 벽이 있을 때는 2를, www.acmicpc.net 문제 요약 1. m*n사이즈의 배열에 성곽에 대한 정보가 주어집니다. 2. 성곽[i][j]에는 해당 위치에 대한 벽의 정보가 주어집니다. 서쪽에 벽이 있을때는 1, 북쪽은 2, 동쪽은 4, 남쪽은 8입니다. 또한 성곽[i][j]는 최소 0, 최대 15의 값을 가집니다. 3. 이 성에 있는 방의 개수, 가장 넓은 방의 넓이, 하나의 벽을 제거하여 얻을 수 있는 가장 넓은 방의 크..

동기(Syncronous)와 비동기(Asynchronous) 처리, 그리고 Callback

동기(Syncronous)와 비동기(Asynchronous) 링크 참고 : https://poiemaweb.com/js-async Asynchronous processing model | PoiemaWeb 동기식 처리 모델(Synchronous processing model)은 직렬적으로 작업을 수행한다. 즉, 작업은 순차적으로 실행되며 어떤 작업이 수행 중이면 다음 작업은 대기하게 된다. 예를 들어 서버에서 데이터를 가 poiemaweb.com 동기(Syncronous)와 비동기(Asynchronous) 예시와 Callback 함수 링크 참고 : https://blog.naver.com/webdeveloping/222197193276 [Javascript] 동기/비동기 처리와 callback 동기와 비..

백준 2467번 용액 (C++)

문제 링크 : https://www.acmicpc.net/problem/2467 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net 문제 요약 1. -1,000,000,000 부터 1,000,000,000 까지의 특성값을 지닌 산성 용액 / 알칼리성 용액이 N개 주어집니다. 2. 특성값은 알칼리성(음수)부터 산성(양수)까지 오름차순으로 주어집니다. 3. 서로 다른 두 용액을 혼합하여 특성값이 0에 가장 가까운 용액을 만들어내는 두 용액을 찾아 입력하세요. 4. 답이 여러가지 일 경우 아무 답이나 출력하세세요..