전체 글25 [프로그래머스/level2] 영어 끝말잇기 문제 풀이과정 원래는 vector만을 이용해서 풀었는데 map을 사용해서 key로 영단어들을 처리하는 게 더 효율적임을 깨닫고 한 번 코드를 엎었다. 풀이 코드 #include #include #include using namespace std; vector solution(int n, vector words) { map word; word[words[0]] = 1; for (int i = 1; i < words.size(); i++) { if (word[words[i]] || words[i - 1].back() != words[i].front()) return {(i % n) + 1, (i / n) + 1}; word[words[i]] = 1; } return {0, 0}; } 실행 결과 2024. 1. 17. [프로그래머스/level2] 최댓값과 최솟값 문제 풀이과정 양수, 0, 음수 모두를 고려해서 최솟값과 최댓값을 찾아야 하는 문제이다. 고려해야 할 사항은 다음과 같다. 1. string으로 주어지는 문자열을 C++에서 어떻게 split할 것인가? 2. 최댓값/최소값을 어떻게 구별할 것인가? 3. 문자열과 숫자 간 변환을 어떻게 할 것인가? C++에서 공백을 기준으로 문자를 나누는 방법은 크게 substr()을 사용하는 방법과 stream을 사용하는 방법이 있다. 필자는 stream을 사용하였다. vector에서 최대/최솟값을 알아내는 방법은 max()와 min()함수를 사용하는 방법, sort()로 정렬해서 찾아내는 방법, max_element()와 min_element()를 사용하는 방법 등 매우 다양하다. sort()로 정렬할 때에는 정렬된 v.. 2024. 1. 17. [programmers/level3] 야근 지수 문제 분석 야근 지수를 최소화하기 위해서는 각 요소 간 차이를 최소화해야 함. works 배열 안에 담겨 있는 요소들이 각각 작아지도록. 원래는 아래와 같은 방식으로 sort()를 이용해서 풀려고 했으나, 테스트 불통. #include #include #include #include using namespace std; long long solution(int n, vector works) { long long answer = 0; // 각 works 안에 담겨 있는 요소들이 최대한 모두 작아지도록 sort(works.rbegin(), works.rend()); for (int i = 0; i < works.size(); i++) cout 2024. 1. 12. WebSocket Protocol (RFC 6455 번역) WebSocket 프로토콜은 우리가 조성한 환경에서 신뢰할 수 없는 코드로 돌아가는 클라이언트에서 통신용 원격 호스트까지의 양방향 커뮤니케이션을 가능하게 합니다. 여기에 쓰이는 보안 모델은 웹 브라우저가 흔히 사용하는 일반적인 보안 모델(origin-based security model)입니다. 이 프로토콜은 TCP 상의 opening handshake을 유지한다. 2023. 4. 6. Functor에 대하여 (Function Objects) 이 글은 https://www.bogotobogo.com/cplusplus/functors.php을 해석한 것입니다. Functor(함수 객체 또는 functional)은 객체+() 이런 구조로 이루어져 있습니다. functor는 함수처럼 실행시키기 위해 operator()을 쓸 수 있는 다양한 객체들을 말합니다. 여기에는 일반 함수(normal functions), 포인터 함수(pointers to functions), 그리고 클래스 객체들이 포함됩니다. 즉 functor의 기본 조건에는 operator()가 오버로딩되있어야 한다는 뜻입니다. 우리는 평소에 쓰던 소위 흔한 함수들이 동작하지 않을 때 함수 객체를 쓸 수 있습니다. STL은 꽤나 자주 함수 객체들을 사용하고, 요긴하게 쓸 수 있는 몇 가지.. 2023. 1. 23. [WEB] What is the web server? 웹 서버(web server)란 HTTP(Hypertext Transfer Protocol)과 그 외 다른 프로토콜을 사용하는 소프트웨어와 하드웨어를 뜻합니다. (각종 프로토콜들은 주로 World Wide Web에서 발생하는 리퀘스트를 처리합니다.) 웹 서버의 주요 기능은 저장해두었던 웹페이지들을 처리(processing)하고 유저에게 보내는 과정을 통해 웹사이트 컨텐츠들을 띄우는 것입니다. HTTP, 더 큰 의미로 웹 서버는 SMTP과 FTP을 지원합니다. SMTP : Simple Mail Transfer Protocol, email 이용을 위함 FTP : File Transfer Protocol, 파일을 전송하고 저장하는 역할 웹 서버 하드웨어는 인터넷과 연결되어 있으며 인터넷으로 연결된 또 다른 디.. 2022. 11. 24. 이전 1 2 3 4 5 다음