반응형

개발 107

g

[C++] 복사 생성자(Copy Constructor) 의 이해 및 활용

오늘은 C++에서 복사 생성자의 개념에 대해서 알아보고 이해하는 시간을 가져보도록 하겠습니다. 복사 생성자(Copy Constructor)의 정의, 이해 및 활용 C++에서 복사 생성자는 중요한 개념 중 하나로, 객체를 복사하거나 전달할 때 사용되는 특별한 유형의 생성자입니다. 복사 생성자의 정의 복사 생성자는 객체의 내용을 다른 객체에 복사하는데 사용되는 특별한 생성자입니다. C++에서는 객체를 전달하거나 할당할 때마다 해당 객체의 복사 생성자가 호출됩니다. 기본적으로 C++ 컴파일러는 클래스에 대해 복사 생성자를 자동으로 생성해 주지만, 사용자가 직접 정의하여 커스터마이징 할 수도 있습니다. 기본 복사 생성자 기본 복사 생성자는 단순히 객체의 모든 멤버 변수들을 다른 객체에 복사하는 역할을 합니다. ..

개발/C, C++ 2023.07.27

g

[코딩 테스트] 소프티어 연습 문제 - 장애물 인식 프로그램 (C++)

오늘은 소프티어 연습문제 중 level 장애물 인식프로그램 문제를 풀어보았습니다. 소프티어 연습 문제 - 장애물 인식 프로그램 https://softeer.ai/practice/info.do?idx=1&eid=409&sw_prbl_sbms_sn=212619 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 문제 설명 자율주행팀 SW 엔지니어인 당신에게 장애물과 도로를 인식할 수 있는 프로그램을 만들라는 업무가 주어졌다. [그림 1] 지도 예시 우선 [그림 1]과 같이 정사각형 모양의 지도가 있다. 1은 장애물이 있는 곳을, 0은 도로가 있는 곳을 나타낸다. 당신은 이 지도를 가지고 연결된 장애물들의 모임인 블록을 정의하고, 불록에 번호를 붙이려 한다. 여기서 연결되었다는..

g

[코딩 테스트] 프로그래머스 연습 문제 - 완주하지 못한 선수

오늘은 완주하지 못한 선수라는 간단한 문제를 풀어보았습니다. 프로그래머스 연습 문제 - 완주하지 못한 선수 https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 r..

g

[코딩 테스트] 프로그래머스 연습 문제 - 기능개발

프로그래머스 연습 문제 level2 기능개발 문제를 풀어보고 리뷰해 보도록 하겠습니다. 프로그래머스 연습 문제 - 기능개발 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100% 일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제약 사항 작업의 개수(progress..

g

[코딩 테스트] 프로그래머스 연습 문제 - 더 맵게

프로그래머스 level2 문제인 더 맵게 문제를 풀어보고 리뷰를 남겨보겠습니다. 프로그래머스 연습 문제 - 더 맵게 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 ..

g

[객체지향 SOLID 원칙] 의존성 역전 원칙(DIP)의 이해와 예제

SOLID 원칙 중 마지막이면서 다소 어려운 의존성 역전 원칙에 대해서 예제를 통해 이해해 보도록 하겠습니다. 의존성 역전 원칙(DIP)의 이해와 예제 의존성 역전 원칙이란 객체들간의 의존관계는 있을 수밖에 없습니다. 이때 어디에서 어디로 의존하느냐가 중요합니다. 의존성 역전 원칙을 따르면, 상위 계층(정책 결정)이 하위 계층(세부 사항)에 의존하는 전통적인 의존관계를 반전(역전)시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있습니다. 이 원칙은 다음과 같은 내용을 담고 있습니다. 첫째, 상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다. 둘째, 추상화는 세부 사항에 의존해서는 안된다. 세부사항이 추상화에 의존해야 한다. 이 원칙은 '상위와..

g

[객체지향 SOLID 원칙] 인터페이스 분리 원칙(ISP)의 이해와 예제

네 번째 SOLID 원칙인 인터페이스 분리 원칙에 대해서 예제를 통해 이해해 보도록 하겠습니다. 인터페이스 분리 원칙(ISP)의 이해와 예제 인터페이스 분리 원칙이란 인터페이스를 사용할 때 가능한 적은 인터페이스를 사용해야 한다는 원칙입니다. 거대한 인터페이스를 사용한다면 해당 인터페이스에서 사용 불가능하거나 의미 없는 인터페이스까지 사용할 수 있고 의존하게 되므로 불안정한 코드가 되거나 가독성에 좋지 않습니다. 따라서 꼭 필요한 전용 인터페이스를 사용하는 것을 선호해야 합니다. 2023.01.14 - [개발/개발 공통] - [객체 지향] SOLID 원칙에 대해서 알아보자 [객체 지향] SOLID 원칙에 대해서 알아보자 객체 지향을 공부하면서 SOLID 원칙을 빼놓을 수 없다. SOLID 원칙에 대해서 ..

g

[객체지향 SOLID 원칙] 리스코프 치환 원칙(LSP)의 이해와 예제

이번에는 세 번째 원칙인 리스코프 치환 원칙(LSP)에 대해서 알아보도록 하겠습니다. 리스코프 치환 원칙(LSP)의 이해와 예제 리스코프 치환 원칙이란 자료형 B가 자료형 A의 서브타입라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형 B의 객체를 자료형 A의 객체로 교체(치환)할 수 있어야 한다는 원칙입니다. 2023.01.14 - [개발/개발 공통] - [객체 지향] SOLID 원칙에 대해서 알아보자 [객체 지향] SOLID 원칙에 대해서 알아보자 객체 지향을 공부하면서 SOLID 원칙을 빼놓을 수 없다. SOLID 원칙에 대해서 공부해 본다. SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이 growing-dev..

g

[객체지향 SOLID 원칙] 개방 폐쇄 원칙(OCP)의 이해와 예제

SRP 원칙에 이어서 개방 폐쇄 원칙인 OCP(Open Closed Principle)에 대해서 알아보도록 하겠습니다. 개방 폐쇄 원칙(OCP)의 이해와 예제 개방 폐쇄 원칙이란 소프트웨어 개발 작업에 이용된 많은 모듈 중에 하나에 수정을 가할 때 그 모듈을 이용하는 다른 모듈을 줄줄이 고쳐야 한다면, 이와 같은 프로그램은 수정하기가 어렵습니다. 개방-폐쇄 원칙은 시스템의 구조를 올바르게 재조직(리팩토링)하여 나중에 이와 같은 유형의 변경이 더 이상의 수정을 유발하지 않도록 하는 것입니다. 개방-폐쇄 원칙이 잘 적용되면, 기능을 추가하거나 변경해야 할 때 이미 제대로 동작하고 있던 원래 코드를 변경하지 않아도, 기존의 코드에 새로운 코드를 추가함으로써 기능의 추가나 변경이 가능합니다. 2023.05.26..

g

[객체지향 SOLID 원칙] 단일 책임 원칙(SRP)의 이해와 예제

이전 포스팅에서 SOLID 원칙에 대해서 알아보았습니다. 이번에는 좀 더 구체적으로 하나씩 이해해보려고 합니다. 첫 번째로 단일 책임 원칙에 대해서 예제를 통해 알아보도록 하겠습니다. 2023.01.14 - [개발/개발 공통] - [객체 지향] SOLID 원칙에 대해서 알아보자 [객체 지향] SOLID 원칙에 대해서 알아보자 객체 지향을 공부하면서 SOLID 원칙을 빼놓을 수 없다. SOLID 원칙에 대해서 공부해 본다. SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이 growing-dev101.tistory.com 단일 책임 원칙(SRP)의 이해와 예제 단일 책임 원칙 (SRP) 란 무엇인가 단일 책임 원칙 (Single Responsib..

반응형