본문 바로가기

목록83

SOLID 원칙이란 안녕하세요. 이번 포스팅은 SOLID 원칙에 대해 알아보려고 합니다. SOLID 원칙은 객체지향설계시 지켜져야할 5가지 원칙으로 알려져 있는데 하나씩 알아보겠습니다. 1. 단일 책임의 원칙 : SRP (Single Responsibility Principle) 단일 책임의 원칙은 모든 클래스는 하나의 기능만 가진다 라는 의미입니다. 즉 클래스는 하나의 책임을 수행해야 한다는 뜻입니다. 코드로 예를 보면 만약 게임플레이어중 일반 플레이어와 운영자 플에이어가 있을 때 Player라는 클래스 안에 운영자 기능과 일반 플레이 기능이 같이 있으면 유지보수가 힘들고 기능이 뒤섞여 있기 때문에 이를 하나의 책임만 갖는 클래스로 나누어야 하는 의미입니다. 더보기 //SRP 위배 class Player { val isA.. 2022. 7. 3.
[Kotlin] inline과 reified 안녕하세요. 이번 포스팅에서는 Inline과 reified 키워드에 대해 알아보려고 합니다. inline 키워드는 함수에 붙는 키워드로 많이 볼수가 있는데요. 가령 흔히 쓰이는 Collection 함수에서 forEach 문을 보면 아래처럼 inline을 사용하는 것을 볼 수 있습니다. @kotlin.internal.HidesMembers public inline fun Iterable.forEach(action: (T) -> Unit): Unit { for (element in this) action(element) } inline 이란 뜻을 그대로 해석해보면 line 안에 라는 뜻으로 해석할 수 있는데 이말은 즉 코드를 라인안에 넣는다는 의미로 해석하시면 될 거같습니다. 우리가 고차함수(함수를 para.. 2022. 7. 2.
[Kotlin] map, flatMap 비교 안녕하세요. 이번 포스팅은 Kotlin의 map과 flatMap을 비교해보려고 합니다. 일단 map같은 경우 내부 구현은 아래와 같이 구현되어 있는데 좀 더 보자면 //_Collections.kt public inline fun Iterable.map(transform: (T) -> R): List { return mapTo(ArrayList(collectionSizeOrDefault(10)), transform) } public inline fun Iterable.mapTo(destination: C, transform: (T) -> R): C { for (item in this) destination.add(transform(item)) return destination } //Iterables.kt.. 2022. 6. 21.
[프로그래머스] 거스름돈 문제 설명 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서 손님께 5원을 거슬러 줘야 하고 1원, 2원, 5원이 있다면 다음과 같이 4가지 방법으로 5원을 거슬러 줄 수 있습니다. 1원을 5개 사용해서 거슬러 준다. 1원을 3개 사용하고, 2원을 1개 사용해서 거슬러 준다. 1원을 1개 사용하고, 2원을 2개 사용해서 거슬러 준다. 5원을 1개 사용해서 거슬러 준다. 거슬러 줘야 하는 금액 n과 Finn이 현재 보유하고 있는 돈의 종류 money가 매개변수로 주어질 때, Finn이 n 원을 거슬러 줄 방법의 수를 return 하도록 solution 함수를 완성해 주세.. 2022. 6. 16.
[프로그래머스] 야근 지수 문제 설명 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요. 제한 사항 works는 길이 1 이상, 20,000 이하인 배열입니다. works의 원소는 50000 이하인 자연수입니다. n은 1,000,000 이하인 자연수입니다. 입출력 예 works n result [4, 3, 3] 4 12 [2, 1, 2] 1 6 [1,1] 3.. 2022. 6. 16.
[백준 14500] 테트로미노 https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 이번 문제는 약한 빡구현 문제입니다. 5개의 도형이 있고 이 도형이 회전/대칭 한 모양에 대해 맵을 전체 순회하면서 해당 도형과 일치하는 부분의 합이 가장 큰 값을 구하는 문제입니다. 1*4 사각형과 2*2 사각형은 길이가 4, 2이기 때문에 따로 처리하고 나머지 3 도형은 3*3 배열안에 각 도형 모양에 맞게 선언해 주었습니다. 그리고 전체 맵의 길이를 상하좌우 +2만큼 증가시켜 위 3*3 배열.. 2022. 6. 9.