본문 바로가기

전체 글

호너의 법칙, 진법 변환 (feat. Honer's method) Honer’s method 호너의 법칙은 다항식을 푸는데 있어 계산량을 줄여준다. 프로그래밍에서 n진법을 10진법으로 바꿀 때 유용하게 사용할 수 있다. 예를들어, 1101 이라는 2진수가 있다. 우리가 10진수로 바꿀 때, 아래와 같이 8+4+1 = 13 으로 변환을 했다. 이를 수식으로 표현해보면 다음과 같다. 로 볼 수 있다. 여기에 x = 2를 대입(2진법 이기에)하여 계산해 보면, 우리가 위에서 계산한 방법과 똑같이 나오는 것을 확인 할 수 있다. 여기서, 를 다음과 같이 생각할 수 있다. 일반화하면 다음과 같다. 이렇게 하면 좋은 점은, 계산량을 최소화할 수 있고, 첫 번째 오는 숫자가 몇 째 자리의 수 인지 계산하지 않고 순차적으로 계산할 수 있기때문이다. 이는 programming 할 때 .. 더보기
const와 pointer 오늘 살펴볼 내용은 간단하지만 종종 헷갈리는 'const' keyword이다. 사실 'const'에 대해서 알고있다고 생각했지만, 이번에 회사 프로젝트를 하면서 'const' 사용에 있어 실수가 있었다. 안다고 생각하는 것과, 실제로 아는 것은 역시 차이가 있다. const에 대해 살펴보기 전에, c언어에서 '변수(variable)'의 개념을 먼저 살펴보자. 흔히 변수를 '변하는 수' 라고 생각을 하지만 컴퓨터 세계에서 '변수'란 근본적으로 말하면 '수를 저장할 수 있는 메모리 공간'을 의미한다. 123456789#include int main(){ int a = 10; //변수 return 0;} cs 5번째 줄, int a = 10 을 다음과 같이 두 단계로 생각할 수 있다. 1. int(정수) 값을.. 더보기
SOLID원칙 SOLID원칙이란 객체지향(Object Oriented Programming)에서 꼭 지켜야 할 5개의 원칙을 말한다. 5개의 원칙 앞 글자를 따서 SOLID라고 부른다. 1. Single Responsibility Principle (SRP, 단일 책임 원칙) Responsibility는 ‘reason to change’로 변경되어야 할 이유를 뜻한다. 즉, 어떤 class가 변경되어야 하는 이유는 오직 하나뿐이어야 한다는 원칙이다. 나무위키에 나와있는 예)사칙연산 기능을 하는 계산 클래스가 있다. 현재 상태의 계산 클래스는 오직 사칙연산 기능만을 책임진다. 이 클래스가 변경(수정)될만한 사유는 사칙연산 함수와 관련 된 문제 뿐이다. 단일 책임 원칙을 지켰기에 클래스의 목적이 명확해졌고, 그에따라 구조.. 더보기