-
알고리즘 문제 풀이5
알고리즘 문제 풀이 5 최근에 푼 재미있는 문제들을 포스팅 해보겠습니다. BOJ 1185 숫자 놀이 이 문제는 $2N - 1$ 개의 숫자가 주어질 때, 그 중에서 $N$ 개의 숫자를 골라서 합이 N의 배수가 되도록 만드는 문제입니다.(단, $N = 2^n$ 꼴의 수 입니다) 우선 “합이 $N$ 의 배수가 되는 $N$ 개의 숫자를 골라내는 것이 언제나 가능할 것인가?” 라는 의문이 생깁니다. 수학적 귀납법을 사용하면 이러한 의문과 이 문제에 대한 답을 동시에 제시해주는 풀이를 얻을 수 있습니다. 지금부터 알아보도록...
-
Purely Functional Business Logic In Scala
안녕하세요~ 오늘은 스칼라에서 비지니스 로직을 purely functional 하게 설계하는 방법에 대해서 소개해볼까 합니다. 함수형 프로그래밍, 스칼라, cats, DDD 에 대해서 알고 계시면 이해가 수월하시겠지만 모르시는 분들을 위해서 기본적인 설명도 같이 첨부해두었습니다. » 이 글을 좀 더 좋은 가독성으로 읽기 « 다루는 내용 cats 의 RWST (ReaderWriterStateT) 를 활용해서 핵심 비지니스 로직을 purely functional 하게 작성하는 방법 그렇게 작성된 비지니스 로직을 DDD (Domain Driven Development) 설계에서 사용하는 방법 비지니스 로직에 대한 고찰 소프트웨어 설계와 개발에 있어서...
-
2019 국제정보올림피아드(IOI) 문제 풀이
IOI 2019 Day 1 IOI 2019 Day 1 대회가 종료되었다. 한국 학생들의 성적은 다음과 같다. Day 1 기준이고, Day 2 점수를 감안하지 않았음을 유념하라. 김세빈, 100 / 40 / 100, 240점, 8등 - 25등 윤교준, 100 / 40 / 72, 212점, 26등 - 59등 임유진, 100 / 40 / 72, 212점, 26등 - 59등 이온조, 100 / 64 / 38, 202점, 60등 올해도 미국의 Benjamin Qi가 만점인 300점을 3시간 30분만에 얻었다. 문제가 쉽지 않았음에도 불구하고...
-
PS Training 1
안녕하세요, 저번 달에 이어 다시 Problem Solving을 주제로 글을 쓰게 되었습니다. 최근에는 이렇다 할 연습을 따로 하지 않았는데, 한국인 problem setter가 준비한 코드포스 라운드도 있었고, SCPC 등을 이유로 조금씩 테크닉을 연습한 문제 등이 있어 모아 쓰게 되었습니다. 지난번엔 코드포스의 div1C 수준 정도의 문제를 다루었지만, 이번에는 div1B~div1C 수준의 문항에 대해 다룰 예정입니다. 각 문제의 디스크립션, 풀이, 그리고 풀어볼 수 있는 링크를 정리합니다. White Lines Codeforces Round #578 (Div.2)의 D번 문제입니다. https://codeforces.com/contest/1200/problem/D 한국의 PS 유저인 jwvg0425님과 djm03178님이...
-
websocket, socket.io를 이용한 양방향 통신
웹 브라우저에서 양방향 통신을 가능하게 해주는 websocket, socket.io에 대해 공부한 내용에 대하여 정리했습니다. 웹 브라우저 에서의 양방향 통신 기존 웹페이지에서 사용하는 http 프로토콜은 요청/응답 패러다임이기에 클라이언트에서 요청을 보내야만 그에 대한 응답을 받습니다. 옛날 홈페이지의 경우에는 동적인 홈페이지가 거의 없어서 큰 문제가 없었으나 동적인 기능이 많이 요구가 됩니다. 그러다 보니 요청을 보내지 않아도 서버에서 클라이언트쪽으로 데이터를 보내야 하는 경우도 종종 생기고는 합니다. 하지만 http 프로토콜로 통신하는 경우 특성상 연결이 유지되지 않아서 서버에서 먼저 요청을 보내는 것이...