본문 바로가기

전체 글

(154)
[프로그래머스_완전탐색] 전력망을 둘로 나누기 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 요구 사항]- n개의 노드와 n-1개의 간선으로 이루어진 트리가 주어졌다. 이 때, 한 개의 간선을 끊었을 때 두 트리의 노드 차이를 최소한으로 하고 그 값을 구하여라 [문제 아이디어]1. 모든 간선을 순회하며 하나씩 끊는다. 그리고 한 트리를 bfs를 돌리면 작은 트리의 노드 개수가 나온다. 이 때, bfs 개수 - (n-bfs 개수)가 최소가 되는 값을 찾는다.- 시간 복잡도 예상 : 간선의 개수 * bfs worst case = (n-1) * (n-1) = n^2 - 공간 복잡도 예상 : (방문체크 배열 길이 + queue의 최대 깊이) * 간..
Hash 함수 해시함수란?해시 함수(hash function)는 임의의 길이를 가진 데이터를 입력받아 고정된 길이의 값, 즉 해시값을 출력하는 함수입니다해시값은 입력 데이터로부터 유도되기 때문에 동일한 입력은 항상 동일한 해시값을 갖게 됩니다. 주로 다음과 같이 사용합니다.- 데이터의 무결성을 검증하기 위하여 ex). 암호학, 데이터 무결성 검증- 데이터의 빠른 검색을 위하여 ex). hash table- 데이터의 균등한 배치를 위하여 ex). Consistent hashing 쉬운 해시 함수의 예제로 5로 나누었을 때가 있습니다. 나머지를 취하는 해시 함수로 0~4의 해시값을 반환합니다. 해시 함수의 특징 1. 단방향성해시 함수는 단방향성을 가지고 있어서 입력 데이터에서 해시값으로의 변환은 쉽지만, 해시값에서 원래 ..
[독후감] 일 잘하는 팀장 팀장 일을 진행하다가 벽에 막혀버렸다. 답을 찾기 위해서 "일 잘하는 팀장"을 읽게되었다. 게임회사 PM을 수행하신 분이 써서 더욱 좋지 않을까란 마음으로 접근했다.  일 잘하는 팀장 - 예스24IT 회사에서 20년 이상 살아남은 비결! 치열하게 고민한 리더십의 기술수많은 프로젝트 성공 경험과 팀 운영 노하우를 담담히 써 내려간 책!팀장의 태도, 팀 운영 방법, 프로젝트 관리까지! 실무www.yes24.com  한줄평 : 팀장에게 필요한 기본기를 가장 정석적으로 쉽게 조언해주는 책. 엄청 특별한 내용이 있지는 않다. 하지만, 필수적인 내용을 꾹꾹 눌러담아서 설명해주는 책이다.총 41가지 조언을 해주는데 이에 대해서 인상 깊은 점을 내 경험과 연결지어서 설명해보겠다.'=>'는 내 생각이다. 핵심 조언 1...
[구름 강연] 프론트엔드 테스팅과 설계 3월의 구름 강연인데, 이제야 쓰게되었다. 한 줄 평을 쓰면,"물고기 잡는 법을 배우러갔는데, 최고급 오마카세를 먹여줬다" 왜 이렇게 적었냐면, 내가 기대한 내용은 프론트엔드 테스트를 어떻게 잘 할 수 있고, 기대 효과는 어떻고 자주하는 실수는 이런 거니 이런 부분은 이렇게 극복하였다. 등 테스트 코드를 잘 작성하는 법을 원했다. 하지만, 강연자님은 설계 관점에서 테스트의 중요성과 테스트를 통해서 프론트엔드를 설계하는 법을 알려주면서 여러 가지 고급 지식을 주셨다.  그래서, 원했던 기술을 배운 게 아닌데, 그보다 중요한 여러 가지를 주셔서 이런 표현이 나오게 되었다. 프론트엔드 테스트가 어려운 이유프론트는 특히, 테스트하기 어렵다. 왜냐하면, 너무 많은 요소가 있기 때문이다. 1. 제품이 동작하는 환경..
[구름 강연] 당근 해외 진출 고군분투기 시간이 조금 지났지만, 4월 17일날 열린 구름 커밋에 대한 가벼운 요약이다. 이번 커밋의 주제는 "당근 해외 진출 고군 분투기"로 당근마켓의 해외 진출 초반부에 대해서 다루었다. 들어가기전 한줄 평 "굉장히 유익하며, 초기 스타트업의 성공과 협업에 대해서 생각할 게 많은 강의"  해외 사업 접근 방법 당근이 해외 사업을 진행하면서, 영국을 골랐고 두 가지 접근 방법을 고민했다.1. 한국의 성공 방정식을 그대로 도입한다.2. 영국의 특화된 방식을 새롭게 시도한다. 당근은 한국의 성공 방정식을 기반으로 로컬 특화 방식을 조금씩 첨가하는 식을 선택하였고, 그렇다면 다시 한 번 한국의 성공방정식을 살펴봐야했다.당근은 한국에서 어떻게 성공하였을까? 당근의 한국 성공 방정식당근의 시작은 판교 장터라는 작은 앱으로..
[화이트보드 동시편집 프로젝트] 4. 마무리 그마지막으로 소소하게 배운 점과 하고 싶은 일들을 남겨두려한다. 웹 접근성웹 접근성과 인클루시브 디자인에 대해서 처음 배웠다.여러가지 차이점을 없애고 모두가 같이 편하게 사용할 수 있도록 만드는 디자인은 정말 가치있는 일이라는 생각이 든다.또, 수많은 태그들이 모두 이런 접근성에 기여한다는 점이 신기했다.오직 div로만 모든 걸 만들었던 과거를 좀 반성하고 있다. 크로스 브라우져 / 기기 호환성제일 걱정했던 부분인데 생각보다 로직은 멀쩡했고 css가 소소하게 깨져서 귀찮았을 뿐 할 말했다. 하지만, apple 제품들과 safari는 정말 힘들었다.iOS 정책 때문에 안 된적도 많았고, 아직도 모르겠는 사파리 이슈가 있다.그리고 두 개 겹쳐지니 뭐가 문제인지 찾는 것도 진짜 힘들었다. 하고 싶은 일들 도전..
[화이트보드 동시편집 프로젝트] 3. 파트장 역할 수행기 (feat. 소통) 나는 이번에 파트장 역할을 수행해서 배운 점과 실수한 점들에 대해서 서술하고자 한다. 내가 맡은 일은 당연히 제품을 기간 내 성공적으로 개발하는 것이었고, 이 문제점을 해결하기 위해서 다음 역할이 필요하다 생각했다. 1. 정보를 잘 정제해내는 것.- 이번 일은 다른 기업과 다른 팀, 다른 본부랑 하는 큰 사업이였다. 그리고 규제가 굉장히 많은 사업이였다. 외부 내용을 내가 잘 정리해서 필요한 지식과 합의된 내역을 문서로 팀원들에게 전달하는 것이 내 역할이라 생각했다. 2. 프로젝트 관리를 하는 것.- 마감은 있지만, 상세한 일정관리는 없었다. 이 부분이 나는 중간점검이 어려우며, 실패에 대한 대책이 없다는 것으로 들렸다. 그래서 큼직한 중단점들을 잡아서 이를 기반으로 일정을 세분화하였다. 위 두 개를 잘..
[화이트보드 동시편집 프로젝트] 2. 문서화 문서화를 도전한 이유코드에 대해서 클린 코드에서 배웠다면, 좋은 개발 문화에 대해서는 "구글 엔지니어는 이렇게 일한다"에서 배웠다.굉장히 많은 충격을 받았지만, 그 내용 중 일개 팀원인 내가 도입할 수 있는 건 별로 없었다. 대부분은 C레벨이나 팀장 이상이 되어야 가능한 일이라 생각되었다. 그래도 할 수 있는 일이 문서화였다.짧게 문서화가 중요한 점을 설명하면, 버스 팩터의 값을 최소화 하는 것이다. 인수인계 없이 프로젝트에서 담당자가 사라졌을 때, 누군가 이 프로젝트를 이어서 진행할 수 있는 가?  난 현재 상황에서는 불가능하다 생각했다. 당시 파트에 프론트엔드 개발자는 오직 나 하나였어서, 기획/ 개발/ 디자인 정보를 공유할 대상이 없었다. 또한, 해당 프로젝트에서 몇 가지 조건이 엉켜있었다. 그 조..