본문 바로가기

분류 전체보기270

비트맵 알고 넘어가기 bmp 영상을 화면에 출력하는 예제를 해보려하는데, 그러기 위해서는 BMP 파일에 대해 이해를 하고 있어야 한다. 비트맵비트맵(BMP)은 컴퓨터에서 영상을 표현하는 대표적인 방법이다.사용시 단순히 그림을 복사하여 화면에 보여주기 때문에 벡터를 이용한 방식보다 빠르다.windows에서 지원하는 비트맵은 두 가지가 있다. 1. 장치 의존 비트맵(Device Dependent Bitmap) DDB 2. 장치 독립 비트맵(Device Independent Bitmap) DIB이 중 영상처리에서는 DIB를 사용한다. 그 이유는 출력장치가 달라지더라도 어디에서나 비트맵이 출력되기 때문이다. 이는 DIB에 자신의 색상을 표현하는 색상 테이블이 있기 때문이다. *참고 : 비트가 모여서 픽셀, 픽셀이 모여서 영상을 구성.. 2018. 3. 6.
영상 편집기 예제 따라하기 당분간은 c++중에서도 영상처리를 공부해야 하는 상황이다.그래서 영상처리 프로그래밍이라는 책을 참조하여 예제를 따라 공부해 볼 생각이다.책 앞부분에 맛보기로 "영상 편집기" 예제를 따라해봤다. MFC 응용프로젝트로 프로젝트를 생성한 후, 책 사이트에서 제공하는 예제 소스코드를 받아 추가해준다.그 다음 '영상 반전', '영상 합성'이라는 이벤트 버튼을 두개 추가하고 해당버튼에 소스코드를 추가해준다. 소스코드를 추가한 후 실행하여 내가 효과를 주고 싶은 파일을 등록하면 아래 사진과 같이 자동으로 변환을 해주게 된다. 주석으로 모르는 부분에 대한 설명을 달아놓긴 하였지만, 자바를 하다 c++로 넘어오려니 함수도 낯설고 모르는 부분이 많다.앞으로 차차 해결해 나가야 할 문제이다. 2018. 3. 5.
프로그래머스 시저 암호 (level.3) 문제 : 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다.A를 3만큼 밀면 D가 되고 z를 1만큼 밀면 a가 됩니다. 공백은 수정하지 않습니다.보낼 문자열 s와 얼마나 밀지 알려주는 n을 입력받아 암호문을 만드는 caesar 함수를 완성해 보세요.“a B z”,4를 입력받았다면 “e F d”를 리턴합니다. 이 문제를 보자마자 a와 A가 아스키 코드 몇이더라..ㅎ 까먹어서 찾아보았다.이 문제에서 필요한 알파벳들의 아스키코드를 보면아스키코드 전체는 0~127까지알파벳은 26개, 대문자 A와 a 는 32 차이A= 65~96부터a= 97~122다. charAt을 사용하여 첫번째 문자를 추출하고Character.isUpperCase()를 사용 대문자인지 .. 2018. 2. 26.
자바 생성자 정리 자바 생성자에 관해 개념이 확실히 서지 않아서 정리의 필요성을 느꼈다. 생성자(constructor)- 객체 생성시 변수에 초기값을 제공하고 필요한 초기화 절차를 실행하는 메소드- 인스턴스 변수를 초기화하는 것이 목적, 하나의 변수를 동시에 여러개의 값으로 초기화 할 수 있다. 생성자의 특징- 인스턴스가 생성될 때마다 호출되는 '인스턴스 변수의 초기화 메소드'- 인스턴스 변수의 초기화 또는 인스턴스 생성시 실행할 작업에 사용- 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다.- 생성자는 메소드처럼 클래스 안에 선언되고 구조도 메소드와 유사하지만, 리턴값이 없다. 생성자의 조건- 생성자의 이름은 클래스의 이름과 같아야한다.- 생성자는 리턴값이 없다. void를 쓰지 않는다.*** 모든 클래스에는 .. 2018. 2. 21.
프로그래머스 멀리뛰기 (level.3) 문제 : 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 출력하는 jumpCase 함수를 완성하세요. 예를 들어 4가 입력된다면, 5를 반환해 주면 됩니다. 이 문제는 단순히 4칸을 가는 방법에 대해서만 구하려고 노력을 했었다. 그러다보니 답을 구하지 못했다. 알고보니 전체에 대한 흐름을 봐야지 풀 수 있는 문제였다. 1칸이 있을 때 = 1(1개) 2칸이 있을 때 = 1+.. 2018. 2. 21.
프로그래머스 야근지수 구하기 (level.3) 문제 : 회사원인 수민이는 많은 일이 쌓여 있습니다. 수민이는 야근을 최소화하기 위해 남은 일의 작업량을 숫자로 메기고, 일에 대한 야근 지수를 줄이기로 결정했습니다. 야근 지수는 남은 일의 작업량을 제곱하여 더한 값을 의미합니다. 수민이는 1시간 동안 남은 일 중 하나를 골라 작업량 1만큼 처리할 수 있습니다. 수민이의 퇴근까지 남은 N 시간과 각 일에 대한 작업량이 있을 때, noOvertime 함수를 제작하여 수민이의 야근 지수를 최소화 한 결과를 출력해 주세요. 예를 들어, N=4 일 때, 남은 일의 작업량이 [4, 3, 3] 이라면 야근 지수를 최소화하기 위해 일을 한 결과는 [2, 2, 2]가 되고 야근 지수는 2의2제곱 + 2의2제곱 + 2의2제곱 = 12가 되어 12를 반환해 줍니다. 우선.. 2018. 2. 20.