일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코딩인터뷰
- 실전사례
- Raw-Request-URI
- datalake
- 2016년회고
- 데이터야놀자
- 알고스팟
- 동시성
- 켄트백
- clean code
- coursera
- 개발자로살아남기
- 클린코드
- 회고
- 데이터레이크
- 개발7년차매니저1일차
- 2017회고
- functional thinking
- spray
- 함수형 사고
- kafka
- 데이터유통
- 해커컵
- hackercup2017
- wait region split
- 개발자
- 단위테스트
- 테스트주도개발
- 박종천
- 데이터플랫폼
- Today
- Total
목록전체보기 (96)
Software Engineering Note
문제: ENDIANS / 구현 해결전략. - 1byte씩 읽어서 메모리에 값을 역으로 저장한다. 1) 입력 값이 저장된 변수의 주소+3위치로 이동한다. 1byte 단위로 이동을 위해 char형 포인터로 변환한다. 2) 결과값을 저장할 변수의 주소로 이동한다. 역시 char형 포인터로 변환. 3) 입력 값 변수의 주소 값은 감소, 결과 값 변수의 주소 값은 증가 하며 메모리 복사.[출처] [AOJ 문제] Endians|작성자 DevMoon 코드: https://github.com/xgate/algospot/blob/master/IMPL/ENDIANS.cpp
문제: NQUEEN / 조합탐색 해결전략 1. 이중배열 이용[출처] [AOJ 문제] N-Queen|작성자 DevMoon 1) 퀸을 놓기전에 상, 좌상, 우상 방향에 퀸이 있는지 검사한다. 2) 있으면 다른 칸에 놓는 것을 시도하고, 없으면 그 자리에 놓는다. 3) 다음 퀸을 놓기위해 재귀함수를 호출한다.[출처] [AOJ 문제] N-Queen|작성자 DevMoon 코드: https://github.com/xgate/algospot/blob/master/SEARCH/NQUEEN1.cpp 해결전략 2. bit 연산 이용 1) queen의 위치를 bit로 표현한다. 2) 위의 행에 있는 queen과 겹치는지 bit 연산을 이용해서 판단한다. 3) 다음 퀸을 놓기위해 재귀함수를 호출한다.[출처] [AOJ 문제] ..
문제: 남극기지 / 그래프 or 이진탐색 모든 노드가 전파를 받을 수 있어야 하고 전파의 출력은 최소화 해야한다. 이 문제를 해결하는데 두 가지 방법을 사용할 수 있다. 1. parametric search parametric search는 어떤 알고리즘으로 해를 바로 구해내는 것이 아니고, 임의의 값을 던지고 맞는지 확인해가며 해를 구하는 방법이다. 앞에서 언급한 임의의 값을 정하는 과정에 이진탐색이 사용될 수 있다. 이 방법을 이용한 알고리즘은 다음과 같다. 1. 초기 값으로 해의 최소값과 최대값을 이진탐색의 low, high 값으로 각각 지정한다. 2. mid((low+high)/2)값이 해가 될 수 있는지 검사해본다. 이말의 의미는 전파의 출력이 mid값인 경우 모든 노드들이 연락을 주고 받을 수..
문제: Shisen-sho / 조합탐색 사천성이라는 게임이 문제의 배경이고 게임 난이도를 정하는 것이 문제이다. 게임 난이도는 한 번에 없앨 수 있는 tile의 쌍으로 정해진다. 탐색의 방향이 정해져있으면 간단했을 건데 상.하.좌.우 모두 훑어봐야 하고, 중복되는 경우는 카운트 하지 말아야하기 때문에 약간 까다로웠다. 소소한 고민. 1. 꺽어지는 경우를 어떻게 판단할까? 문제에서는 3번 이상 방향이 전환되는 경우는 카운트하지 말아야한다고 했다. 방향 전환 유무를 어떻게 감지할까? 생각해보니 이전위치와 다음위치를 검사하면 될것같았다. 방향이 바뀌지 않았다면, 다음위치와 이전 위치가 적어도 x, y 둘 중 하나의 값은 같을 것이다. 둘다 다르다면 방향이 전환된 것이다. 그래서 재귀함수에 이전좌표를 넘겨줬다...
문제: MATEXP / 분할정복 한 번에 한 번씩 계산해서는 시간내에 해결할 수 없다. 그렇다면? 반 씩 나누어서 계산하면 빠르게 해결할 수 있다. 1*1 행렬 계산을 해서 승수 2에 대한 값을 만들고, 다시 2*2를 해서 승수 4에 대한 값을 만들고.. 이런 식으로 하면 logN번만 계산하면 된다. 100 by 100 행렬 계산에 그리 큰 시간이 소요되지 않으므로, 행렬 계산은 단순하게 3중 loop로 처리했다. 총 복잡도는 코드: https://github.com/xgate/algospot/blob/master/DIV/MATEXP.cpp
www.linkedin.com/in/xgate/ 이곳은 저의 개발 전용 블로그입니다. 기존 블로그에 이런저런 주제들이 뒤섞여 있어 제대로 한 번 개발 전용 블로그를 만들어보기로 했습니다. 어느 날 문득.. 보통 자신을 나타내는 별칭이 있기 마련인데.. 개발자로서의 별칭을 만들고싶어졌습니다. 그래서 'DevMoon'이라는 별칭을 만들었습니다. 개발자 '문'(이름의 끝자) 이라는 의미가 있고, 달(Moon)이 뜰 때까지 개발한다는 의미도 포함하고 있습니다. 나름 만족하고 있습니다. 제너시스템즈, 다음, 카카오를 거쳐 카카오엔터프라이즈에서 일하고 있습니다.