.. Cover Letter

ㅇ 공부#언어 50

(실무리눅스)Vi 사용법

이번 시간에는 Vi 에디터 사용법에 대해서 알아봅니다. 사실 저는 윈도우의 메모장과 비슷한 gedit을 즐겨쓰는데, 리눅스를 사용하는 사람들은 주로 VIm editor를 사용한다고 합니다. Vi Eidtor는 두 가지의 모드가 존재합니다. 1. Command mode - 커서를 움직일 수 있습니다. - 단어를 찾을 수 있습니다. - editing mode로 전환할 수 있습니다 2. Editing mode - 수정하거나 단어를 삽입합니다. Vi를 실행해봅시다. 우선 작업공간을 하나 만들어줍시다. 폴더이름은 vi로 하겠습니다. 여기서 다음의 명령어를 입력하면 실행이 가능합니다. vi test 다음과 같은 화면이 나오는데, 어떻게 나가야할지 막막합니다. 처음에 들어가면 Command mode 로 동작합니다. ..

(C)string을 swap하는 함수를 만들어주세요.

간단하게 a와 b를 서로 바꿔주는 swap 함수를 만들어주세요. main 함수는 주어집니다. int main() { const char* a = "abcd"; const char* b = "12345"; printf(a); //"abcd" printf(b); //"12345" str_swap(); printf(a); //"12345" printf(b); //"abcd" } str_swap()에 들어갈 매개변수는 자유롭게 설정하시길 바랍니다. 아마 가장 유명한 문제가 아닐까 싶습니다. 이 문제를 푸는 방법을 설명드리겠습니다. 우선 다음의 문자열 선언에 대해 이해할 필요가 있습니다. const char* a = "abcd"; abcd 라는 문자열 리터럴을 가리키는 포인터 변수 a입니다. 보통 우리가 stri..

(C++) 초급 2장. 연산자 오버로딩(연산자 중복) 복습하기(1/2)

주의 : 이 글은 C++의 기초문법에 대해 상세하게 다루지 않습니다. ※ 뇌를 자극하는 C++ STL 의 책을 참고하여 개인적으로 정리한 글입니다. 이 글의 목적은 해당 책의 내용을 인용하여 더 쉽게 이해하고자 정리하고, 더 쉬운 예제를 통해 이해하는 것을 목표로 하고 있습니다. 깊게 공부하고 싶다면 책을 구매하는 것을 추천드립니다. 책의 저작권 등등 각종 권한은 출판사와 지은이/옮긴이에 있습니다. - 출판사: (한빛 미디어) - 지음: 공동환 ※ 이 블로그는 포토폴리오 목적으로 별도의 수익을 창출하지 않습니다. 뇌를 자극하는 C++ STL - YES24 뇌를 자극하는 C++ STL - YES24 코드 중심으로 설명했다. 코드를 실습하면서 한 단계씩 실력을 쌓을 수 있게 했다. 단계별로 난이도를 조금씩 ..

(C++) 초급 1장. 연산자 오버로딩(연산자 중복) 복습하기

주의 : 이 글은 C++의 기초문법에 대해 상세하게 다루지 않습니다. ※ 뇌를 자극하는 C++ STL 의 책을 참고하여 개인적으로 정리한 글입니다. 이 글의 목적은 해당 책의 내용을 인용하여 더 쉽게 이해하고자 정리하고, 더 쉬운 예제를 통해 이해하는 것을 목표로 하고 있습니다. 깊게 공부하고 싶다면 책을 구매하는 것을 추천드립니다. 책의 저작권 등등 각종 권한은 출판사와 지은이/옮긴이에 있습니다. - 출판사: (한빛 미디어) - 지음: 공동환 ※ 이 블로그는 포토폴리오 목적으로 별도의 수익을 창출하지 않습니다. 뇌를 자극하는 C++ STL - YES24 뇌를 자극하는 C++ STL - YES24 코드 중심으로 설명했다. 코드를 실습하면서 한 단계씩 실력을 쌓을 수 있게 했다. 단계별로 난이도를 조금씩 ..

(C++) 코딩테스트 2. 자료구조(투포인터, 슬라이딩 윈도우)

참고도서 : Do it! 알고리즘 코딩테스트 C++편 . 김종관 . 이지스퍼블리싱 . 2022 using namespace std를 사용하지 않습니다. 투 포인터 2개의 포인터로 알고리즘의 시간 복잡도를 최적화 하는 것을 말한다. 2018번: 수들의 합 5 (acmicpc.net) 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 연속된 자연수들의 합으로 나타낼 수 있는가? 예를 들어 15는 7 + 8 혹은 1 + 2 + 3 + 4 + 5 이런식으로 나타낼 수 있는가? 있다면 몇가지를 가지..

(실무 리눅스) 노트북에 연결한 듀얼모니터 배율 문제

고해상도 노트북을 모니터에 연결했을 때 노트북에 설정된 배율 문제로 인해서 다음처럼 화면이 나오게 됩니다. 설정에서 바꿔주면 될거 같은데 여기서 모니터를 선택하고 scale을 100%로 설정하면 모니터는 정상배율로 돌아오는데, 노트북의 배율도 따라서 변경이됩니다. 그럴 때 사용하는 방법입니다. xrandr 터미널에 다음을 입력하고 이름은 HDMI-1 이고 해상도는 1920x1080입니다. xrandr --output HDMI-1 --mode "1920x1080" --scale "1x1" 다음의 명령어에서 스케일 부분을 2x2이상으로 올리면 좀 편해집니다. 해결됩니다.

(C++) 코딩테스트 1. 시간복잡도와 디버깅 / 2. 자료구조(1/2)

참고도서 : Do it! 알고리즘 코딩테스트 C++편 . 김종관 . 이지스퍼블리싱 . 2022 참고도서 : 파이썬 알고리즘 인터뷰 . 박상길 . 책만 . 2020 시간복잡도 보통의 시간복잡도는 빅오 표기법을 기준으로 수행시간을 계산해야합니다. 보통 여러 시간복잡도 유형중에서 빅오가 가장 최악의경우일때를 나타낸다고 보시면됩니다. 빅오는 점근적 실행 시간(시간복잡도)을 표기할 때 가장 널리 쓰이는 수학적 표기법입니다. (입력값이 무한대로 향할때 함수의 상한을 설명하는 수학적 표기법이다) 빅오의 경우는 시간복잡도를 항상 최고차항만 표기합니다. O(1) : 입력값이 아무리 커도 실행시간이 일정한 경우 O(logn) : 로그는 매우 큰 입력값에도 크게 영향을 받지 않는 편 O(n) : 입력값만큼 시간에 영향을 받..

(C++)알고리즘 탐구 5. 브루트 포스 (1/2) (풀이, 알고리즘 분석)

참고도서 : 파이썬 알고리즘 인터뷰 . 박상길 . 책만 . 2020 참고도서에서 언급하는 알고리즘 주제를 참고하여 C++로 풀어보는 것을 목표로 합니다. 알고리즘을 공부하면서도 소프트웨어적 설계를 추가합니다. 답을 내는 코드를 짜는게 아니라 각각이 모듈이 되어 서로 맞물려 동작하는 코드를 짜는 것을 목표로합니다. (그래서 다른 글보다 코드가 깁니다.) 참고로 상위 레벨의 코드를 볼 수록 using namespace std; 라는 코드가 보이지 않아, 없이 진행합니다. 브루트 포스 모든 조합을 일일히 확인해보는 무차별 대입 방식입니다. 문제집: 브루트포스 (연습) (scbsoccer) www.acmicpc.net 다음의 문제집의 문제를 풀어봅니다. 브론즈와 실버 정도의 레벨을 풀면서 브루트 포스 알고리즘의..

C++ 코딩 테스트 기술 모음

C++ 문법 및 편법 1. 소수점 고정하기 cout inp; if(cin.eof()) break; } 체점시에는 자동으로 들어가지만 디버깅때는 ctrl + z 를 입력해야함. Vector 1. Vector 정렬하기 #include algorithm sort(v.begin(), v.end()); 2. Vector에서 원하는 값의 index를 찾기 std::vector v = { 10000, 75, 20, 36, 47, 40, 6, 10 }; std::cout ::iterator it; for (it = words.begin(); it != words.end(); ++it) {

(C++)알고리즘 탐구 4. 애너그램 그룹 (풀이, 남의 코드 분석)

참고도서 : 파이썬 알고리즘 인터뷰 . 박상길 . 책만 . 2020 참고도서에서 언급하는 알고리즘 주제를 참고하여 C++로 풀어보는 것을 목표로 합니다. 알고리즘을 공부하면서도 소프트웨어적 설계를 추가합니다. 답을 내는 코드를 짜는게 아니라 각각이 모듈이 되어 서로 맞물려 동작하는 코드를 짜는 것을 목표로합니다. (그래서 다른 글보다 코드가 깁니다.) 참고로 상위 레벨의 코드를 볼 수록 using namespace std; 라는 코드가 보이지 않아, 없이 진행합니다. 애너그램은 단어를 재배열해서 다른 단어로 만드는 것을 말합니다. 우선 책에서 언급하는 문제는 그룹 애너그램이라는 문제입니다. 책의 문제와 완벽히 유사한 문제가 백준에 있습니다. (그러나 책에 있는 문제는 못풀었습니다.) 그 전에 다른 애너그..

(C++)알고리즘 탐구 3. 가장 많은 글자. (풀이, 남의 코드 분석)

참고도서 : 파이썬 알고리즘 인터뷰 . 박상길 . 책만 . 2020 참고도서에서 언급하는 알고리즘 주제를 참고하여 C++로 풀어보는 것을 목표로 합니다. 알고리즘을 공부하면서도 소프트웨어적 설계를 추가합니다. 답을 내는 코드를 짜는게 아니라 각각이 모듈이 되어 서로 맞물려 동작하는 코드를 짜는 것을 목표로합니다. (그래서 다른 글보다 코드가 깁니다.) 참고로 상위 레벨의 코드를 볼 수록 using namespace std; 라는 코드가 보이지 않아, 없이 진행합니다. 1371번: 가장 많은 글자 (acmicpc.net) 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 ..

(C++)알고리즘 탐구 2. 문자열 뒤집기(풀이, 남의 코드 분석)

참고도서 : 파이썬 알고리즘 인터뷰 . 박상길 . 책만 . 2020 참고도서에서 언급하는 알고리즘 주제를 참고하여 C++로 풀어보는 것을 목표로 합니다. 알고리즘을 공부하면서도 소프트웨어적 설계를 추가합니다. 답을 내는 코드를 짜는게 아니라 각각이 모듈이 되어 서로 맞물려 동작하는 코드를 짜는 것을 목표로합니다. 참고로 상위 레벨의 코드를 볼 수록 using namespace std; 라는 코드가 보이지 않아, 없이 진행합니다. 문자열 뒤집기 유사문제로는 아래 문제가 있으며, 이는 마지막에 풀어보도록 하겠습니다. 9093번: 단어 뒤집기 (acmicpc.net) 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. ..

(C++)알고리즘 탐구 1. 유효한 팰린드롬 (풀이, 남의 코드 분석)

참고도서 : 파이썬 알고리즘 인터뷰 . 박상길 . 책만 . 2020 참고도서에서 언급하는 알고리즘 주제를 참고하여 C++로 풀어보는 것을 목표로 합니다. 팰린드롬이란 앞뒤가 똑같은 단어나 문장으로 뒤집어도 같은 말이 되는 단어 또는 문장을 말합니다. 문제 : 주어진 문자열이 팰린드롬인지 확인해라, 대소문자를 구분하지 않는다. 알파벳만 판정하며, 다른 문자열은 판정하지 않는다. 10174번: 팰린드롬 (acmicpc.net). 10174번: 팰린드롬 팰린드롬은 앞으로 읽으나 뒤로 읽으나 똑같은 단어나 숫자들을 말한다. 일반적으로 대소문자를 구분하지 않지만, 공백은 구분한다. 다음은 팰린드롬의 예시이다. Anna Harrah Arora Nat tan 9998999 123 www.acmicpc.net 이 문제..

(실무리눅스) 14. 우분투에 docker 설치하기

https://docs.docker.com/desktop/install/ubuntu/ Install Docker Desktop on Ubuntu docs.docker.com 우선 도큐먼트에 나오는 KVM virtualization은 설치할 필요가 없다고 합니다 (ChatGPT가 그렇게 말했지만 틀릴 수도 있습니다.) docker를 상업적으로 사용할 경우에 돈이 발생한다고 합니다. 자세히는 모르겠습니다. https://docs.docker.com/desktop/install/linux-install/#system-requirements Install Docker Desktop on Linux docs.docker.com 해당 도큐먼트에 나와있는 system requirements를 만족해야합니다. gnom..

(기초 C++) 11장. 예외처리

주의 : 이 글은 C의 기초문법에 대해 상세하게 다루지 않습니다. (즉 C언어에서 배울 수 있는 기초내용은 생략합니다) 마지막장입니다. 이 다음 쳅터에서는 실무에서 꼭 필요한 개념 과 effective C++과 Morden C++의 책을 보면서 진행을 하도록 하겠습니다. 좋은 C++ 책들 + 레퍼런스들 - CPP 마이너 갤러리 (dcinside.com) 좋은 C++ 책들 + 레퍼런스들 - CPP 마이너 갤러리 좋은 C++ 책들 + 레퍼런스들원본 링크 : (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)(본 글에는 번역본 링크만 gall.dcinside.com 이런 글도 있습니다. 참고가 될거 같습니다. C++..