블록체인 학회 회고록 지난 22년 5월, 처음으로 블록체인 학회를 만들기 위한 초기 운영진이 대면으로 만남을 가지었다. 모인 사람은 세 명. 장소는 카레집. 그로부터 9개월. 23년 2월 22일 하이블 1기의 활동이 공식적으로 종료되기까지 나의 1학년은 블록체인 동아리와 함께 하였고 그로부터 끝났다고 해도 과언이 아니다. 휴대폰의 캘린더 앱에 가장 처음으로 기록된 하이블 관련 회의는 22년 6월 20일, 17시에 있었던 하이블 온라인 회의다. 이때를 기점으로 해봐도 248일 간을 몸담았던 학회. 이곳에 몸담으면서 잃은 것도, 얻은 것도 많았다. 블록체인 학회를 하면서 느낀 점을 여러 편에 걸쳐서 정리하고자 한다. 글은 두서없이 쓰이지만 그동안 느껴왔던 나의 진솔한 생각들을 담고자 한다. 블록체인 학회를 ..
vector와 list 중 무엇을 써야 할까? 결론부터 말하면 거의 대부분의 상황에서 그냥 std::vector를 쓰면 된다. 그 이유를 알면 더 좋다. std::vector와 std::list의 차이 C++에서는 배열로 사용할 수 있는 컨테이너를 여러 개 지원하는데, 그 중 가장 많이 쓰이는 것은 std::vector와 std::list가 있다. 두 개 다 역할은 비슷한 거 같은데, 그 내부 구현은 완전히 다르다. 먼저 std::vector는, 그 내부 구조가 연속적인(Sequential 타입) 배열 형태로 이루어져 있다. 실제 물리적인 메모리 구조 상으로 연속적인 구조이다. 위 그림 모델이 정확히 std::vector의 모습을 표현하고 있다. 반면에 std::list는, 내부가 불연속적인(Non-se..
구조체와 클래스의 차이점 C++에는 여러 데이터 집합을 담을 수 있는 대표적인 방법이 두 가지가 있는데 구조체(struct)와 클래스가 바로 그것이다. 둘이 역할은 비슷해보이는데, 둘의 차이점은 무엇일까? 접근 제한자 - struct는 public, class는 private 일단 기본 접근 제한자가 다르다. 기본 접근 제한자란 해당 구조체 혹은 클래스를 선언하고, 명시적으로 접근 제한자를 설정하지 않았을 때 기본적으로 주어지는 멤버의 접근 제한자를 의미한다. 그래서 struct를 생성했을 때, 접근 제한자를 아무것도 쓰지 않는다면 자동으로 모든 멤버가 public으로 처리된다. 반대로 class를 생성했을 때는 기본적으로 private하게 주어진다. struct UserData { int ID; // ..
7587번 Anagrams 난이도: 실버 4 알고리즘 분류: 문자열, 해시맵 언어: C++ 주차: 7주차 풀이 날짜: 2023년 1월 31일 문제 7587번: Anagrams 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 155 97 60 65.217% 문제 Two words are anagrams if they contain the same letters but in a different order. For example ant and tan are anagrams, but ant and ton are not. In this problem you will be supplied with a list of words. All you have to do is to pick out..
iterator, 왜 사용할까? iterator의 개념 먼저 C++로 코딩을 하신다고 하면, 반복자 iterator에 대해서 꼭 아시는게 좋습니다. iterator는 C++98 이전부터 있어왔던 포인터의 일종입니다. 매우 강력한 기능이고, 의외로 C++을 사용할 때 C와 다르게 포인터를 사용할 일이 정말 특이한 경우가 아니라면 거의 없는데, iterator는 정말 많이 사용합니다. iterator에서 가장 많이 사용하는 메소드는 begin()과 end()인데, 각각 컨테이너의 시작점, 그리고 끝점 + 1 칸을 리턴합니다. (그림 출처: cppreference vector begin, end) end()가 가장 끝점이 아닌, 가장 끝점에서 한 칸 더 나아간 위치를 리턴한다는 것을 주의하십시오. 그리고 it..