c언어 split(문자열 자르기)

포인터랑 친해지기 위해서 파이썬에 기본적으로 있는 기능인 length와 split를 만들어 보고자 하였다. 다만 length의 경우 sizeof를 이용하면 간단하게 구현할 수 있었다. 물론 length 함수를 만드려고 하면 더 복잡해 진다. 그리고 예상외로 버그도 많았다. 그래서 결국은 split만 완성할 수 있었다… Source Code 1 2 3 4 5 6 7 8 9...

RGB를 HSI로 변환

Image Editor를 만들때 RGB를 조절하여 색상을 조절하는 기능을 구현하고 HSI를 조절하여 색상을 조절하는 기능을 추가하려고 했으나 관련 지식이 너무나 부족했고, 기본적으로 Hue를 변경할 수 있게해야 하는 합당한 이유를 찾을 수 없어서 만들지 않았었다. 오늘 HSI에 대해서 배우는데 갑자기 묵혀가고 있던 프로그램이 생각나 해당 기능을 추가해 보려고 한다. 하지만 여전히 Hue에...

가독성 떨어지게 코딩하기

‘유지보수가 어려운 코딩하는 방법’ 이라는 책을 읽고 있는데 느낀점이 있다면 유지보수가 어렵게, 가독성이 떨어지게 코딩하기 위해서는 남들보다 많은 지식을 겸비하고 있어야 한다는 것이다. 결국 형식에서 완전히 벗어난, 남들이 이해하기 어려운 코드를 작성하기 위해서는 프로그래밍 언어의 형식과 틀을 누구보다 잘 익히고 있어야 한다는 것이다. ‘나는 아직 한참 멀었구나! 열심히 공부해서 이와같은...

백준 알고리즘 1037 : 약수(C++)

[백준 알고리즘] 1037 : 약수 예시 입력 : 2 4 2 예시 출력 :  8 문제를 간단히 정리하면 1과 N이 아닌 약수를 제공할테니 실제 숫자를 구하라. 그렇다. 썩 어렵지 않은 문제다. 하지만 필자는 틀린 경험이 있다. 그것도 10개월 전. 10개월 전 소스코드 1 2 3 4 5 6 7 8 9...

C++ 연산자 오버로딩

연산자 오버로딩은 오버로딩의 확장형 개념이다. 프로그래머가 만든 함수를 오버로딩하듯 연산자(+,-,++)를 클래스에서 오버로딩하여 사용할 수 있다. 필자가 이해한 바로는 +,-와 같은 연산자를 함수 이름처럼 사용할 수 있다. 전에 공부할때는 그냥 함수 만들어서 쓰고말지 싶었는데, 쓰면 코드 난독화할때 좋을것 같아서 다시 공부했다. Basic Class 연산자 오버로딩을 설명하기위해 등장한 클래스이다. 먼저 Basic Class는...

C언어 한글로 코딩하기, 안녕 세상!

왜 한글로 코딩하는 것에 집착하는가? 누군가에겐 분명히 영어가 어렵고 누군가에겐 분명히 프로그래밍이 어렵다. 내 옆자리에 앉았던 친구가 그랬다. 최소한 한글로 구성된 코드를 본다면 “아! 이런 원리구나!”라고 느낄 수 있을거라 믿었다. 나에게 프로그래밍은 분명 재밌다. 그 친구에게도 프로그래밍이 재밌었으면 좋겠다. 적어도 언어에 구애받지 않고 머릿속에 떠오른 단어들로 프로그램을 만들 수 있다면...

C언어 랜덤은 정말 랜덤일까? rand 함수 직접 만들기

C언어에서 랜덤값을 생성하기 위해선 대부분 stdlib.h의 rand()함수를 사용 할 것입니다. 하지만 rand()함수를 진짜 믿고 써도 되는 걸까요? 랜덤함수보다 더 좋은 성능의 함수를 사용하거나 만들 수는 없을까요? 어느 날 교수님께서 위와 같이 말씀하셨다. 그동안에 단 한번도 이런 궁금증을 가져본 적이 없으므로 필자는 흠칫 놀랄 수 밖에 없었다. 그리곤 진지하게 고민해보는 시간을...