본문 바로가기

전체 글18

자료구조 프로젝트 MID ▼자료구조 프로젝트 목록 더보기 2022.10.18 - [프로젝트] - 자료구조 프로젝트 MID 2022.12.04 - [프로젝트] - 자료구조 프로젝트 FIN 과제 설명 하천 부유 쓰레기 사진 데이터를 직접 구성 및 공유합니다. 구축한 데이터를 바탕으로 원하는 문제를 정의하고 자료구조를 이용해 해결합니다. 데이터 소개 및 다운로드 링크 데이터는 총 104장의 하천 부유 쓰레기 이미지와, 이미지의 정보를 요약한 data.csv파일, 총 두 가지입니다. data.csv에는 이미지 크기, 촬영장소의 위도·경도 및 쓰레기 종류가 요약되어 있습니다. 성북천·청계천·도림천·안양천·한강 총 5곳에서 촬영하였습니다. 이미지 크기는 3024x4032 또는 4032x3024입니다. 보다 상세한 설명은 압축 파일의 REA.. 2022. 10. 18.
문과가 컴공 복수전공해도 괜찮을까요? 들어가기에 앞서 내 스펙(?)을 정리해 보겠다. 나는 일본어문과로 입학하여 1-2학기부터 공대계열 과를(정확한 과 이름은 적을 수 없지만, 컴공과 비슷한 커리를 따르는 과다) 복수전공하기 시작했고, 1년 뒤 전과했다. 그리고 현재 나는 3학년 2학기 과정을 보내고 있다. 미리 말해두지만 나는 수학을 좋아하거나 이공계에 흥미가 있는 문과가 아니었다. 내 수능수학 성적은 무려 4등급이었고, 그마저도 입학하고 나서는 대부분 잊어버렸다. 나는 국어와 영어, 사탐에 강한 전형적인 문과였다. 그랬던 내가 왜 공대를 복수전공하고, 전과까지 하게 됐을까? 아마 이 글을 읽는 사람들과 같은 이유일 것이다. 나는 취업을 잘하고 싶었다. 1. 복수전공을 시작하기까지 나는 내 원래 전공을 좋아했다. 일본의 문화에 관심이 있다.. 2022. 10. 2.
[자료구조] Big-O 표기법과 이진 탐색 트리(binary search tree) 이번 포스트에서는 이진 탐색 트리에 대해 알아본다. 를 참고하여 작성되었다. leetCode 문제풀이 이진 탐색 트리에 대해 알아보기 전에, 빅오 표기법(Big-O)에 대해 간단히 알아보자. 빅오 표기법은 특정한 알고리즘의 시간 복잡도를 표시하는 방법을 말한다. 조금 쉽게 풀이해보자. 예를 들어 어떤 알고리즘을 연산하기 위해서 T(n) = n2 + n + 1 만큼의 연산이 실행된다고 가정한다. n은 입력의 개수 또는 문제의 크기를 의미하는데, 이를테면 a번을 반복하며 1부터 a까지 곱해주는 for문이 있다고 했을 때 a를 n이라고 생각하면 된다. for(int i=1; i 2022. 9. 25.
[자료구조] 힙과 우선순위 큐(heap&priority queue) 이번 포스트에서는 힙과 우선순위 큐에 대하여 알아본다. 에서 많은 부분을 참고하여 정리했다. 우선순위 큐란 무엇일까? 우선 큐는 선입선출의 원칙에 의하여 먼저 들어온 데이터가 먼저 나가는 자료구조라는 사실은 알고 있다. 그렇지만 세상에는 우선순위에 따라 순서를 변경해야 하는 문제들이 있다. 소프트웨어를 예로 들어보자. 내가 핸드폰으로 1시간짜리 플레이리스트를 듣고 있었는데, 도중에 친구에게 전화가 온다. 이때 음악이 끝나지 않았다고 해서 단순하게 순서대로 일을 처리한다면 우리는 전화를 받지 못할 것이다. 따라서 각각의 프로세스에 우선순위를 부여하여 더 중요한 프로세스가 먼저 처리되도록 해야 한다. 이때 우선순위 큐를 사용하는 것이다. 우선순위 큐를 구현하는 방법으로는 배열을 이용하거나 연결리스트를 사용하.. 2022. 9. 21.
[C++] STL을 이용한 우선순위 큐(priority queue) 저번 포스팅에서는 우선순위 큐와 힙에 대한 내용을 정리해 보았다. 그런데 우선순위 큐를 사용하기 위해서는 코드를 일일이 구현해야 하는 걸까? 그렇지 않다. C++에서는 STL(표준 C++ 라이브러리 Standard Template Library) 을 통해 프로그램에 필요한 자료구조와 알고리즘을 템플릿으로 제공하고 있다. 오늘은 이 STL을 이용한 우선순위 큐에 대해 알아본다. 이에 앞서 STL은 제네릭 알고리즘과 C++을 위한 데이터 구조체들의 첫 번째 라이브러리로서 만들어졌다는 사실을 짚고 넘어가면 좋을 것 같다. priority queue는 기본적으로 아래와 같은 문법으로 선언한다. #include priority_queue queue; 첫 번째 인자는 타입을 지정한다. 두 번째 인자는 컨테이너를 지.. 2022. 9. 18.
[C++] 백준 1966 프린터 큐 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 요약 FIFO - First In First Out 구조로 우선순위에 따라 문서를 인쇄하는 프린터기가 있다. 조건은 다음과 같다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 문제: Queue에 있는 문서의 수와 중요도가 주어졌을 때, 어떤 한 문서가 몇 번째로 인쇄되는지 알.. 2022. 9. 18.
지속가능발전목표(SDGs) UN총회에서 2030년까지 달성하기로 결의한 의제인 지속가능발전목표(Sustainable Development Goals)는 지속가능발전의 이념을 실현하기 위한 인류 공동의 17개 목표이다. 그 중 13번째 목표는 다음과 같다. Climate action 기후행동 팬데믹 상황으로 인해 일시적으로 탄소 배출량이 감소했지만 2020년에도 온실가스 농도는 계속 증가하며 사상 최고치를 경신했다. 지구 평균 온도가 1850-1900년 기준치보다 1.2° 상승하였는데, 기온 상승을 1.5° 이내로 제한하고 2050년까지 온실가스 순 배출량을 0으로 만들겠다는 파리협정 목표를 감안했을 때 매우 위협적인 수치인 셈이다. 본 섹션의 본문은 3줄로 요약할 수 있다. 온실가스 배출량의 증가를 막기 위해서는 탄소 중립으로의 .. 2022. 9. 14.
윈도우 11에서 WSL 완전히 삭제하기 윈도우 10 버전 2004 이상(빌드 19041 이상) 및 윈도우 11에서는 wsl를 wsl --install 이라는 간단한 명령어로 설치하는 것이 가능하다. 나 역시 이 방법대로 설치를 하려다가 수동 설치와 헷갈려서 조금 이상하게 설치가 됐다.. 그런데 나는 리눅스가 처음이라 뭘 고쳐야 할지 전혀 알 수 없었기에 삭제후 재설치를 하기로 했다. 원문 링크: https://pureinfotech.com/uninstall-wsl-windows-11/ wsl를 완전히 삭제하려면 몇 가지 절차가 필요하다. 1) 리눅스 배포판 제거 '설정->앱->앱 및 기능'으로 들어간다. 설치되어 있는 배포판을 모두 제거한다. 2) wsl 제거 1번과 같이 앱 및 기능으로 들어가 아래 항목들을 제거한다. 3) window11에.. 2022. 9. 12.
[Visual Studio] wntdll.pdb 로드되지 않음 이런 오류가 발생했다. 처음 보는 에러라 검색을 해 보니 디버깅할 때 필요한 정보가 저장된 파일이 없어서 발생하는 오류라며 IDE 설정을 만져주던데, 나는 잘 실행되다가 중간에 멈춘 것이라 코드 상의 문제 같았다. 프로그램이 중단되는 곳을 보니 포인터를 delete하는 부분에서 문제가 생긴 듯 했다. 결론부터 말하면 같은 메모리 주소를 두번 delete한 게 문제였다. 멀쩡히 잘 사용하던 클래스 멤버 변수 "index"가 정의되어 있지 않다길래 어딘가 소멸을 잘못 시켰구나 생각했다. 이미 한번 삭제한 주소를 클래스 소멸 과정에서 다시 삭제한 거였다. 포인터를 사용하기 시작하니 대부분의 오류가 메모리 관리에서 발생하는 것 같다. 주의해서 사용하자. 2022. 6. 19.