반응형

분류 전체보기 303

비트 마스크 (Bit Mask)

비트 마스크(Bit Mask) 기법은 말 그대로 비트(Bit)를 마스킹하는 기술 입니다. 비트를 마스킹 한다는 것은 &(AND 연산자), | (OR 연산자) 등의 비트 연산을 활용하여 정수의 이진 비트를 처리하는 작업이라고 이해하 실 수 있습니다. 비트 마스크 기법은 항상 사용할 수 있는 것은 아니지만 특정한 경우에 사용하면 매우 효율적 일 수 있습니다. 비트 마스크의 대표적인 장점을 소개하면 다음과 같습니다. ​ 1. 메모리를 적게 사용할 수 있습니다. 2. 프로그램이 더욱 빠르게 동작 합니다. 3. 소스코드가 직관적으로 변경 됩니다. ​ 일반적으로 정수 7이 있을 때 이것을 비트 형태로 표현하면 다음과 같습니다. ​ 7 : 0000000 0000000 0000000 00000111 (2진수 비트, 3..

Algorithm 2021.02.01

KMP 문자열 매칭 알고리즘

오늘은 문자열 찾기 알고리즘인 KMP(Knuth-Morris-Pratt) 알고리즘에 대해서 공부 하겠습니다. ​ ​ 1. 문자열 매칭(String Matching) 우리들이 흔히들 사용하는 브라우저에서 Ctrl + F(찾기) 기능에서 사용 하는 알고리즘 입니다. KMP 알고리즘은 "전체 문자열" 과 우리가 찾고자 하는 "패턴 문자열" 이 존재 할때 패턴 문자열을 효율적으로 찾을수 있는 알고리즘 입니다. ​ ​ 2. KMP 알고리즘 아이디어 먼저 KMP 알고리즘의 핵심 아이디어는 다음과 같은 상황에서 나왔습니다. 위와 같이 전체 문자열 "ababaca" 에서 패턴 문자열 "abac" 를 찾으려는 상황에서 패턴 문자열이 2칸을 건너뛰어 찾고자 하는 패턴 인지 검사 할수 있습니다. 그 이유는 1) 패턴 문자열..

Algorithm 2021.01.29

N Queens 문제 (체스 여왕 문제)

문제 N * N 체스판에서 퀸을 겹치지 않고 N개 넣을 수 있는 좌표를 구하라. 이 문제는 대표적인 BackTracking 문제 이다. 체스말을 첫 행부터 한행 씩 두어 보다가 막혀서 더 이상 진행을 할 수 없을 때 다시 돌아와 체스말을 둔다는 의미에서 BackTracking 문제 이다. 이와 같은 BackTracking 문제는 깊이 우선 탐색으로 문제를 해결 할 수 있다. ​ 먼저 sudo 코드를 작성 해보자. // sudo 코드 return-type queens( level ) { if non-promising (infeasible 한 경우) report failure and return; else if success report answer and return; else visit children ..

Algorithm 2021.01.27

일러스트 안내선(Guides & Grid)

일러스트를 이용해서 여백이나, 객체들에 간격을 맞추고 싶을 경우 유용하게 사용하는 것이 안내선(Guides & Grid) 입니다. ​ 위처럼, 안내선으로 여백을 남기고, 객체들을 정렬 하기 위해서 유용 하게 사용 합니다. 1. 일러스트 자(Ruler) 안내선(Guides & Grid)을 만들기 위해서는 먼저, 자(Ruler)를 먼저 열어주세요. 'Ctrl + R' 단축키를 사용하시면 열수 있습니다. ​ 2. 안내선(Guides & Grid) 그리기 마우스로 자(Ruler)의 놓고 클릭하고, 드래그(Drag)를 해주면 안내선이 생깁니다. 가로 뿐만 아니라, 세로도 똑같이 안내선을 그릴 수 있습니다. 3. 안내선(Guides & Grid) 선택 안내선을 마우스로 선택 했다면, 안내선이 민트색 -> 파랑색 으..

Photoshop_illust 2021.01.26

경우의수를 비트마스크로 표현하는 법

(사과, 딸기, 포도) 중 에서 선택 할수 있는 총 경우의 수는 어떻게 될까요? 아래 그림과 같이 선택 할수 있습니다. 선택하는 경우를 1, 선택 안하는 경우를 0 으로 표현 할수 있습니다. 이를 이용해서, 경우의수 문제(조합, Combination, DFS)를 비트 마스크를 이용해서 해결 할수 있을거 같습니다. 1. 비트 마스크 비트 마스크는 이진수로 표현하여, 비트 연산자(&(AND연산자), |(OR연산자), ^(XOR연산자))를 이용하여 각각의 이진수의 값을 마스킹(가리다) 하여, 원하는 연산을 할수 있는 것 입니다. 4(십진수) => {1, 0, 0}(이진수) 2(십진수) => {0, 1, 0}(이진수) 1(십진수) => {0, 0, 1}(이진수) 위와 같이 십진수를 이진수로 표현 할수 있습니다...

Algorithm 2021.01.23

일러스트 정렬 단축키 설정 하기

일러스트에서 가장 많이 사용하는 기능은 무엇일까요? 바로, 1순위가 오브젝트 수직, 수평 정렬 입니다. 그럼, 오브젝트 수직, 수평 정렬을 단축키로 만들어 버리면 작업 시간을 훨~씬 단축 시킬수 있지 않을까요? 그런데, 정말 아쉽게도 일러스트에서 오브젝트의 정렬은 단축키로 설정을 할 수 없습니다. 따라서, 일러스트의 '액션' 기능을 사용해서 정렬 기능을 단축키 처럼 사용 할 수 있습니다. ​ 1. '정렬 액션 파일' 을 다운로드 한다. 2. 일러스트에서 윈도우(Window) -> 액션(Action) -> 액션 파일 불러오기 3. 단축키로 한번의 정렬 4. 수직, 수평 가운데 정렬 F10 단축키로 정렬해 보기 1. '정렬 액션 파일'을 다운로드 한다. 2. 일러스트에서 윈도우(Window) -> 액션(Ac..

Photoshop_illust 2021.01.22

일러스트 정렬의 모든 것

일러스트에는 4가지 종류의 정렬이 있습니다. 1. 선택 정렬 2. 기준 정렬 3. 대지 정렬 4. 간격 정렬 ​ 1. 선택 정렬 선택 정렬은 2개의 오브젝트를 정렬 해주는 방법 입니다. 위에 있는 6개의 아이콘으로 선택 정렬을 할 수 있습니다. 정렬을 시키고 싶은 2개의 오브젝트를 모두 선택하고 정렬 아이콘을 선택 해주시면 아래와 같이 정렬이 됩니다. 2. 기준 정렬 기준 정렬은 선택 정렬 시 에는 2개 오브젝트에 위치가 움직 입니다. 하지만 기준 정렬은 2개 오브젝트 중 하나의 오브젝트의 위치를 기준으로 정렬 시킬 수 있습니다. 위에는 선택 정렬 시 2개 오브젝트의 위치가 바뀌는 것을 볼 수 있습니다. 하지만 2개 오브젝트를 모두 선택하고, 그 중 기준이 되는 오브젝트를 클릭 해주고 원하는 정렬 방법을..

Photoshop_illust 2021.01.21

일러스트 이전 패턴 반복 단축키

일러스트 CS6, CC 버전을 사용 하다 보면, 방금 전에 작업한 패턴인데 그대로 반복해야 되는 경우가 아주 많습니다. 예를 들어, 네모칸 왼쪽에 라인을 하나 더 만들고 그 라인을 복사해서 오른쪽에 하나 더 둡니다. 그리고 Ctrl + D를 해주면 이전에 복사 -> 오른쪽으로 이동 -> 붙여넣기 한 패턴 그대로 실행이 됩니다. 이 단축키가 편한것은 만약 이 단축키를 몰랐다면 이전에 이동한 만큼만 가고 싶은데 그 만큼만 이동하기가 쉽지 않습니다. 기억하세요! Ctrl + D : 이전 패턴 반복 하기!!

Photoshop_illust 2021.01.20

PO vs PM vs 기획자

1. Product Owner(PO) "비즈니스 목표와 고객 경험에 맞춰 개발 조직과 협업하여 Product의 가치가 극대화 되도록 구현하는 사람" => Mini-CEO, Problem Solver 의 역할이라고 볼수도 있습니다. Product Owner(PO)는 관리자는 아닙니다. 개발자, 디자이너의 상위 평가자가 아닙니다. 개발자, 디자이너와 동료 평가자일 수는 있습니다. 관리 업무를 하지 않고, 실무 업무를 합니다. 물론 CPO는 다를수 있습니다. CPO는 Product 전체의 flow를 봅니다. 또한, PO들에 역량 개발과 협업 구도를 만들어 줍니다. PO 조직은 마케팅이나 영업의 요구사항을 받는 부서가 아니라, 협업을 통해 성과를 만드는 조직 입니다. 2. Product Owner vs Prod..

Lean Startup 2021.01.18

다이나믹 프로그래밍 2

다이나믹 프로그래밍 1 '다이나믹 프로그래밍' 한글로 '동적 계획법' 이라는 알고리즘은 '리차드 벨만'이 만든 알고리즘 입니다. 리차드 벨만은 최단 경로를 찾는 '벨만 포드 알고리즘'도 만들었습니다. ​ ​ 1. 다이나 coding-food-court.tistory.com 위의 다이나믹 프로그래밍의 개념을 먼저 공부하고 아래의 문제를 다이나믹 프로그래밍을 이용해서 해결해 보겠습니다. 행렬 경로 문제 1. 정수들이 저장된 N * N 행렬이 있습니다. 2. 이 행렬의 좌상단 부터 우하단 까지 이동 합니다. 3. 오른쪽이나 아래쪽 방향으로만 이동 할 수 있습니다. 4. 어느 길로 가야 정수들의 합이 최소가 되도록 할 수 있을까요? 1. (i, j)에 도달하기 위해서는 (i, j-1) 혹은 (i-1, j)를 거..

Algorithm 2021.01.15
반응형