반응형

개발 113

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..

g

[코딩 테스트] 프로그래머스 연습 문제 - 모의고사

프로그래머스 level1 문제인 모의고사 문제를 풀어보았습니다. 프로그래머스 연습 문제 - 모의고사 https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5,... 2번 수포자가 찍는 방식: 2, 1,..

g

[코딩 테스트] 프로그래머스 연습 문제 - 타겟 넘버

오늘은 프로그래머스 연습 문제 중 level2 인 타겟 넘버 문제를 풀어보았습니다. 프로그래머스 연습 문제 - 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 =..

g

[코딩 테스트] 프로그래머스 연습 문제 - 멀쩡한 사각형

프로그래머스 level2 문제인 멀쩡한 사각형 문제를 풀어보았습니다. 프로그래머스 연습 문제 - 멀쩡한 사각형 https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 가로길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가..

g

[코딩 테스트] 프로그래머스 연습 문제 - 키패드 누르기

제목과 연관된 키워드가 무조건 들어가야 한다. 프로그래머스 연습 문제 - 키패드 누르기 문제 설명 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4-1. 만약 두 엄지손가락의 거리가 같다면, 오른손잡이는 오른손 엄지손가락, 왼손잡이는 왼손 엄지손가락을 사용합니다. 제약 사항 numbers 배열의 크기는 1 ~1,000 numbers 배열 원소의 값은 ..

반응형