본문 바로가기

분류 전체보기

(333)
백준 200문제 달성 후기 2021.08.16 백준 알고리즘 200문제 달성 이전까지는 뭐를 공부해야할지도 몰라서 그냥 눈에 보이는 문제들만 풀어왔다면, 200문제 정도 푸니까 이제 뭐가 부족하고 어떤걸 공부해야할지 감이 오는듯 하다. 구현문제는 나름 자신있었는데.. 조금 어려운 구현문제를 보다보니까 내가 구현을 잘한다고 착각하고 있었다는걸 깨달았다. 풀때는 제일 재밌는데 조건 하나씩 틀리기 시작하면 진짜 멘붕.. 그래도 어떻게 풀어야할지 감이 하나도 안오는 DP보다는 구현이 편하다 ㅜ 문제 난이도 분포 거의 브론즈문제를 풀어서 해결한 문제 수를 뻥튀기 시켰다. 무려 4가지 언어를 백준에서 연습했어서(C#, C++, JS, Python) 브론즈 문제의 비중이 유독 높은것같다. 앞으로의 목표는 실버문제를 옛날 브론즈 문제 풀듯이 슉..
방송통신대학교 컴퓨터과학 3학년 1학기 후기(4.5) 7전공 99.4점 정도의 점수를 받아서 4.5(A+)학점을 얻게 되었다. 이번 학기는 지난 학기보다 불확실성이 컸던 학기로, 몇몇 과목이 시험으로 변경되면서 기존 기출문제의 출제 유형을 따라가지 않는 과목들도 있었다. 이로 인해 기출문제만 공부하셨던 분들이 큰 피해를 입은 것으로 알고있다. 그래도 강의 듣고 교재로 꼼꼼히 공부하면 점수받기 힘들 과목은 없었던것 같다. C프로그래밍 첫 프로그래밍 과목으로 추천하는 과목답게 난이도가 낮게 측정되어있다. 시험도, 과제도 모두 쉬운편에 속한다고 생각한다. 초보자가 C언어를 공부하면서 헷갈릴만한 내용들을 전부 제외하고 커리큘럼을 구성했다는 생각이 들 정도였다. 그래도 프로그래밍 과목인만큼 처음 프로그래밍을 접한 사람은 시간을 많이 투자해서 꼼꼼히 공부해야한다고 말..
172번 Factorial Trailing Zeroes 풀이(c++) 풀이 해설을 요청하신 분이 있어서.. 이 문제는 'trailing zero'을 구하는 문제이다. 숫자의 가장 뒤에 연속해서 붙어오는 0의 갯수를 세는 문제라고 말해도 될것같다. (단 0인경우에는 숫자를 세지 않는다) 처음에는 주어진 숫자를 문자열로 바꿔서 맨 뒤에 있는 0의 갯수를 세는걸로 생각했지만, 더 효율적인 방법이 있을거라 판단하고 생각하다보니 한 가지 규칙을 발견하게 되었다. n! = x * 10^r 맨 뒤에 연속해서 오는 숫자가 r이라고 할 때, 위와 같은 수식으로 문제를 바꿔서 표현할 수 있다. 오히려 '맨 뒤에 있는 0의 갯수'보다 위 식이 훨씬 간결하고 정확하게 문제를 정의하고 있다. 즉, n!을 소인수분해하여 나오는 10의 갯수가 이 문제의 정답이 된다. 10을 소인수분해하면 '2*5'..
트래픽을 쓸어담는 검색엔진 최적화 후기 검색엔진(구글)이 좋아하는 웹 페이지를 만드는 방법이 적혀있는 책 검색엔진 사용자의 75%는 검색 결과에서 두 번째 페이지로 넘어가지 않으며 7~80%의 사용자는 광고로 인한 상위 노출을 클릭하지 않고 검색엔진 자체의 결과에 집중하기 때문에 웹 마케팅 관점에서 검색엔진을 최적화 하는 일은 굉장히 중요한 일이라고 할 수 있다. 웹 페이지를 만드는데 여러 이유가 있지만, 대부분 웹 서비스를 만드는 사람들은 최대한 많은 사람들이 자신의 켄텐츠를 이용하게 하거나 구매전환율을 높이는 것이 목적일 것이다. 이러한 목표를 이루기 위해 가장 중요한 것이 SEO인데, 나는 프론트엔드 공부를 하면서 SEO에 이런 세계가 있다는 것을 전혀 알지 못하였다. 보통 FE공부를 하면서 매우 간단한 SEO에 대해 공부하기는 하지만,..
유니티 Rest API 통신 UnityWebRequest 유니티에서 WWW을 지원하지 않는다고 발표한지 꽤 된거같은데 아직 WWW로 작성된 예제들이 많다. UnityWebRequset를 이용하여 로그인/로그아웃을 하고 파일(이미지)을 다운로드해오는 코드를 작성해보았다. 완성된 코드라고는 할 수 없겠지만, 기본적인 뼈대는 작성해놓았으니 여기서 필요한 부분만 수정해서 사용하면 될듯하다! using System.Collections; using System.IO; using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; public class InternetCheck : MonoBehaviour { private string token = null; private string login_email..
RabbitMQ 브로커 설정 RabbitMQ는 가장 널리 배포된 오픈소스 메시지 브로커입니다. MQTT, AMQP, HTTP및 WebSockets등 다양한 메시지 통신을 지원하며, 메시지 통신을 쉽게 관리할 수 있는 매니지먼트 페이지도 제공합니다. 저는 MQTT의 메시지 통신을 위한 브로커가 필요해 RabbitMQ를 이용하였습니다. Messaging that just works — RabbitMQ Developer Experience Deploy with BOSH, Chef, Docker and Puppet. Develop cross-language messaging with favorite programming languages such as: Java, .NET, PHP, Python, JavaScript, Ruby, Go, a..
생활코딩- JavaScript Immutability 완강 짧게 볼 수 있는 JavaScript Immutability강의. 함수형 프로그래밍에서 왜 불변성을 지켜야 하는지 이해가 안됬었는데 보다보니까 어떤 느낌인지 대충 감을 잡게 되었다. assign, freeze와 같은 기본적인 불변성 테크닉을 알게 되었지만 제대로 불변성을 지키려면은 immutable js같은 라이브러리를 익히는게 좋을듯 하다. 자바스크립트를 공부해가며 나의 첫번째 js프로젝트의 감이 어느정도 잡히고있다. React+Redux+Immutable.js+WebGL 이정도를 사용해서 진행할듯 하다. 앞으로 한동안은 생활코딩에 빠져 살듯하다. Immutable.js Immutable collections for JavaScript Immutable data cannot be changed once..
생활코딩 - react 완강 HTML/CSS/JS를 넘어 드디어 리액트 공부를 시작했다. 이번주부터 패스트캠퍼스에서 벨로퍼트님의 리액트 강의가 시작되는데, 패스트캠퍼스에 참고자료에 사람들 반응을 보니 리액트 강의를 따라가기 힘들다는 사람들이 보였다. 나는 무조건 100% 환급 받을 각오로 완주반 강의를 듣고 있으니 어렵다면 미리 준비해가야겠지. 그래서 믿고 듣는 생활코딩 강의로 리액트를 처음 시작해보았다. 역시 생활코딩 강의답게 부드럽고 빠르게 리액트를 사용해서 무언가를 만들어보는 과정을 배울 수 있었다. 아직 HTML로도 웹사이트를 스스로 만들어본 적이 없어 깜빡임이 없는 홈페이지를 만드는 것이 왜 어렵고 리액트가 필요한건지 체감적으로 느끼고 있지는 않지만, 그래도 리액트를 사용해서 기존에 클론코딩한 웹사이트의 디자인을 거의 똑같..