최신 글
-
Graph partitioning problem
ProblemDivide a network of data centers into optimal local regions.Given a network of g_nodes data centers and g_edges bidirectional connections, the i-th connection connects data centers g_from[i] and g_to[i] with a latency of g_weight[i]. The max_latency of a network is the maximum latency of any connection.Divide this network into k or fewer networks by removing some of the connections such t..
2025.04.01
-
[Book review] 인간을 분석하는 6가지 도구 (Feat. MBTI)
서론책을 접하게 된 계기는 역행자를 읽은 것부터 시작한다. 이후 이 책의 저자가 운영하는 카페에 갔다가 이 책의 출판된 버전을 팔고 있었는데 간단히 읽다 맘에 들어서 사버렸다.ㅎ 사람의 심리에 대해 관심이 많았었는데 학술적인 접근보다 경험, 실용적인 접근이 마음에 들었고 거기다 실제 사례를 들어서 설명하니 더욱 신뢰가 갔다. (상담전문회사 경영에 마케팅하는 사람이라...) 거두절미하고 책의 핵심내용을 요약함과 동시에 사견을 붙여서 이야기해보려한다. 한줄로 요약하면 사람을 파악하는 법에 대해 다루고 있는 책이다. 6가지의 도구로 유형화시켜 설명한다. 책의 서론 부분에 "유형화에 대한 반박"이란 주제로 유형화 비관론자들에게 반박으로 시작한다. 요약하면 결국 유형화는 인간의 본성이고 반박하는 사람들조차 스스로..
2023.03.19
-
[git] system global local 차이점
git system global local 차이점 system 해당 파일 시스템이 있는 모든 사용자와 모든 저장소에 적용되는 설정 파일 /etc/gitconfig 에 저장 global 해당 사용자에게만 적용되는 설정파일 ex) 같은 linux user ~/.giconfig 에 저장 local 해당 저장소에만 적용 .git/config 에 저장 git commend default operation 중복된 옵션이 있다면 local, global, system 순서대로 덮어쓴다. ex) .git/config와 /etc/gitconfig에 같은 옵션이 들어있다면 .git/config에 있는 옵션을 사용한다.
2023.03.15
-
[Book review] 문서자료 - Software Engineering at Google, 구글 엔지니어는 이렇게 일한다.
서문앞 글인 지식공유 글에서 이어집니다. 지식을 공유하는 효율적인 방법 중 하나가 문서자료라고 생각한다.문서자료는 무엇이고 왜 필요할까?또 많은 사람들이 효율적으로 양질의 문서자료를 관리하려면 어떻게 해야할까?오늘은 책에서 문서자료 Chapter를 정리하고 사견을 붙여 이야기한다. 문서자료문서자료(documentation)란 엔지니어가 작업을 끝마치기 위해 작성해야하는 모든 부수적인 텍스트이다.여기에는 별도로 작성한 문서는 물론이고 코드주석까지 포함한다. 문서자료가 필요한 이유개발자로서 내가 생각하는 문서자료가 필요한 가장 큰 이유는 양질의 프로그램을 만들기 위해서라고 생각한다.좀 더 풀어서 설명하면 팀의 모든 구성원이 더 원활히 역량을 발휘할 수 있게 된다는 것이다. 이제 신입딱지를 막 땐 나는 문서자..
2023.01.20
-
[Book review] 지식공유 - Software Engineering at Google, 구글 엔지니어는 이렇게 일한다.
서문 주도적으로 성장하는데 관심이 많은데 그중에서도 독서를 하는 습관을 기르려 노력 중이다. 그 노력의 일환으로 book review를 진행하고자 한다. 첫 번째 책은 Software Engineering at Google 구글 엔지니어는 이렇게 일한다로 선정했다. 미국의 빅 테크 기업을 대표하는 기업 중 하나인 구글의 문화를 간접적이나마 체험해보고 개발자인 내 일에 적용하기 쉬울 것이라 생각했기 때문이다. 책을 읽으며 생각보다 공감 가는 부분이 많았다. software를 개발하는 데 있어 어느 정도 차이는 있겠지만 결국 겪는 어려움은 비슷한 것 같았다. 이 글에선 일부인 지식 공유 Chapter를 리뷰하고자 한다. 배움을 가로막는 장애물 구글은 조직에 배움의 문화가 자리 잡혀야 한다고 강조한다. 이런 ..
2022.11.03
-
[C, C++] type conversion 형 변환
형 변환 한 자료형에서 다른 자료형으로 값을 변환하는 것 암시적 형 변환(implict type conversion): 즉 컴파일러가 자동으로 하나의 기본 자료형을 다른 자료형으로 변환한다. 자동 형 변환(automatic type conversion)이라고 불린다. 명시적 형 변환(explict type conversion): 형 변환을 하기 위해 형 변환 연산자(type casting operator)를 사용한다. 의도치 않은 형 변환은 오류를 원인중 하나이기 때문에 되도록 피해야 하고 될 수 있으면 명시적 형변환을 사용해야한다. explicit 암시적 타입 변환을 수행하는데 쓰이지 않게 하는 키워드 class A { public: explicit A(int x = 0, bool b = true); ..
2022.05.03
-
[C++, 완전탐색] 프로그래머스 양궁대회
문제 https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr 풀이 완전탐색 문제이다. 총 11개의 점수(0점 ~ 10점) 에서 라이언이 해당 점수를 선택하냐 선택하지 않느냐로 나눌 수 있다. 구현이 쉬운 dfs로 풀이하였다. 해당 문제에서 주의해야 할 점이 있다. 문제를 꼼꼼히 읽어보면 알 수 있는데 예시에도 나와있듯이 라이언이 가장 큰 점수 차이로 우승할 수 있는 방법이 여러 가지 일 경우, 가장 낮은 점수를 더 많이 ..
2022.04.07
-
[C++, 문자열, 슬라이딩 윈도우] 프로그래머스 추석 트래픽
문제 https://programmers.co.kr/learn/courses/30/lessons/17676
2022.04.05
-
[C++, 문자열] 프로그래머스 오픈채팅방
문제 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 해답 Stringstream과 hash를 이용해 풀이하였다. #include #include #include #include #include using namespace std; unordered_map nameMap; class tans{ public: string ac; string h; }; vector solution(vector record) { ..
2022.04.04
-
[C++, 문자열] 프로그래머스 다트게임
문제 https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 해답 stringsteam을 잘 활용하니 parsing을 쉽게 할 수 있었다. #include #include #include #include using namespace std; int solution(string dartResult) { stringstream ss(dartResult); int answer = 0; int answerList[3] = { 0, }; int strIdx = 0; for (int i = 0; i < 3; i++) { //parsing int score = 0; char bonus = 0, opt..
2022.03.31
인기 글
-
Visual Studio 유용한 단축키 정리 (feat.자동정렬)
코딩에 관심 있는 사람이라면 한 번씩 쓸법한 유용한 비주얼 스튜디오 단축키를 정리해 보았다. 그중 내가 유용하다고 생각될만한 단축키는 강조 처리했으니 참고하면 될 것 같다. Ctrl-K, Ctrl-H : 바로가기 설정. ( 작업목록 창에서 확인 가능 )Ctrl-K, K : 북마크 설정 / 해제Ctrl-K, L : 북마크 모두 해제Ctrl-K, N : 북마크 다음으로 이동Ctrl-K, P : 북마크 이전으로 이동Ctrl-K, C : 선택한 블록을 모두 주석 처리Ctrl-K, U : 선택한 블록을 모두 주석 처리 해제 Ctrl-A : 전체 코드 블럭잡기 -> Ctrl-K,F : 선택한 영역 자동 코드 정렬 (이거 다시 찾다가 포스팅하는 중...)Ctrl-F3 : 현재 단어 찾기-> F3 : 다음 찾기 C..
2018.07.26
-
[C++] 문법 char to string , string to char 변환
문법 char to string , string to char 변환 1. char to string으로 변환하는 방법 string의 생성자를 이용, 생성 할 때 인자로 넘겨서 생성하는 방법 char배열의 이름을 사용해 대입연산자를 이용해 대입해주는 방법 2. string to char로 변환하는 방법 c_str()함수를 이용 해 string을 char로 변환시키고 그 값을 strcpy를 이용, 다른 char값에 복사하는 방법 EXAMPLE #include #include using namespace std; int main(){ //char to string char ch[10] = "hello"; string str1(ch); string str2=" "; str2=ch; cout
2019.10.16
-
[C, C++] #include <헤더파일>과 #include "헤더파일"의 차이
#include 과 #include "헤더파일"의 차이에 대해 알아보겠다. 어떤 헤더파일은 꺽쇠로 표시하고 어떤 것은 " "로 표시하는지 문득 궁금증이 들었다. 결론부터 말하면 둘의 주요한 차이점은 해당 헤더파일이 존재하는 경로의 차이이다. #include 컴파일러가 설치된 폴더에서 헤더 파일을 찾으라는 지시이다. 예를 들어서 iostream이나 stdio.h와 같은 헤더파일은 컴파일러와 같은 폴더에 같이 위치해 있다. 같은 경로에 있는 것이다. 따라서 꺽쇠로 표시해줘서 같은 경로에서 찾으라는 명령이다. #include "헤더파일" 사용자의 프로젝트 폴더나 개발자가 추가포함 디렉터리로 지정해준 경로에서 찾으라는 명령이다. 개발자가 만든 헤더파일이나 추가로 외부 라이브러리를 포함하고 싶은 경우 위와 같은 ..
2019.10.23
-
프로그래머스 SQL 문제 총정리
https://programmers.co.kr/learn/challenges 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.kr SELECT 모든 레코드 조회하기 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID 역순 정렬하기 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC 아픈 동물 찾기 동물 보호소에 들어온 동물 중 아픈 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. ..
2020.06.04
-
[C++, STL] std::fill 함수 사용하기 (feat. std::vector, 1차원 배열, 2차원 배열 초기화)
std::fill 1 2 template void fill (ForwardIterator first, ForwardIterator last, const T& val); cs 헤더파일에 저장되어 있다. 값으로 범위(first, last)를 채우는 역할을 하는 함수이다. 인자 (Parameters) first, last val의 값으로 채울 범위를 나타내는 반복자들 [first, last)범위에 값이 채워지게 된다. first는 포함하지만 last는 포함하지 않는다. val 범위에 채울 값 리턴값 (return value) 없다. 예제 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253..
2019.09.25
-
[Error,C++]Expression must be a modifiable lvalue 해결법
코딩하다 "Expression must be a modifiable lvalue" 오류가 가끔 뜬다. 직역하면 "표현식은 수정할 수 있는 lvaue이어야만 한다."라는 뜻이다. 여기까지 찾아왔다면 무슨 소리인가??? 무엇을 잘 못 썼다는 말인 거 같은데 난 잘 못 쓴 게 없다는 분들이 대다수라 생각한다. 하지만 결론적으로 잘못 쓰셨다. 표현식을 하나하나 찬찬히 뜯어보시길 바란다. 저 또한 같은 생각을 했고 다시 실수하지 않기 위해 이글을 쓴다.. 그래도 여기서 바로 알고싶다는 분들을 위해 stackoverflow에 있는 사례를 하나 들겠다. int M = 3; int C = 5; int match = 3; for ( int k =0; k < C; k ++ ) { match --; if ( match ==..
2020.05.25
-
[Error, VS] E0077 이 선언에는 저장소 클래스 또는 형식 지정자가 없습니다.
Visual studio를 사용하다 "E0077 이 선언에는 저장소 클래스 또는 형식 지정자가 없습니다. "와 같은 오류가 발생하는 경우가 있다. 구글 신께 물어보니 코드상에서 사용하려는 클래스 또는 타입들을 컴파일러가 인식할 수 없다는 의미이다. 헤더 파일 including 문제이므로 경로 설정이 올바르게 되었는지 확인해야 할 것이다. 라고 답변을 하는데 나 같은 경우에는 헤더파일 문제가 아니었다. 원인을 파악해보니 코드를 인터넷에서 복붙 하는 경우 VS가 인식할 수 없는 특수문자가 포함되는 경우가 있다. 이 경우 오류가 나는 위쪽 코드를 Error가 없어질 때까지 지웠다가 다시 타이핑해보길 바란다.
2019.09.23
-
[Error, VS] "const char *" 형식의 값을 사용하여 "char *" 형식의 엔터티를 초기화할 수 없습니다.
1 char* window_name = "Threshold Demo"; cs 위와 같은 코드가 비주얼 스튜디오 2015에서는 잘 되는데 2017부터는 오류가 발생한다. 해결책은 1. 아래와 같이 const를 붙이거나 1 const char* window_name="Threshold Demo"; cs 2. 프로젝트 > 속성 > C/C++ > 언어 > 준수모드 > 아니오 로 변경해주는 방법이다. 좀 구체적으로 이유를 찾아보니 비주얼 스튜디오에는 속성에 준수모드라는게 있는데 이게 2017부터 기본적으로 "예(/permissive-)" 상태로 설정되어 있기 때문이다. 위의 준수모드를 아니오로 바꾸고 적용해주면 문제없이 실행된다.
2018.12.28
-
[C,C++] 1,2차원 배열 원소 선언, 정적 동적 전체 초기화
문제를 풀다 C와 C++의 1,2차원 배열 선언 초기화가 동적,정적에 따라서도 완전달라 포스팅을 해보려 한다. C 1차원 배열 정적,동적 초기화 C 2차원 배열 정적,동적 초기화 C++ 1차원 배열 정적,동적 초기화 C++ 2차원 배열 정적,동적 초기화 순으로 진행된다. 먼저 C 1차원 배열 정적 초기화의 경우 일반적인 배열 초기화는 다들 알걸로 생각한다. 1 2 3 4 5 6 7 //int형의 5개 배열을 초기화 int arr[5]={5,9,3,4,2}; //개수를 생략해도 무방하다. int arr[]={5,9,3,4,2}; cs 1 int arr[5]={6,} cs 이렇게 하면 모두 6으로 초기화 된다는 포스팅이 많은데 그렇지 않다. 6 0 0 0 0이렇게 될뿐이다. 한번에 초기화하는 법은 찾아서 업..
2018.08.23
-
vector, unordered_map 전체 순회 알고리즘 속도 비교
vector는 배열을, unordered_map은 hash_table를 사용해 hash를 구현한 모두 유명한 자료구조 컨테이너이다. unordered_map의 탐색 시간 복잡도는 O(1)이다. 그렇다면 전체 순회의 경우 vector와 비교할 때는 어떻게 될까? 단순히 시간복잡도만을 계산하면 둘 다 O(n)인데 어떤 것이 더 빠를까? 직접 해보자 #include #include #include #include #define COUNTER 1000000 int main() { using namespace std::chrono; // std::chrono::milliseconds is an instatiation of std::chrono::duration: int tmp; std::vector v; std:..
2020.05.03