전체 글(301)
-
[Codeforces] Max GEQ Sum(Stack + Segment Tree)
이번에는 D문제를 풀었다. DP 식으로 풀었는데 역시나 시간 초과가 발생했다. #include #include #include #include using namespace std; int main() { int t; cin >> t; while(t--) { int n; bool answer = true; cin >> n; vector sum(n, vector(n, 0)); vector maximum(n, vector(n, 0)); for(int i = 0;i > sum[i][i]; maximum[i][i] = sum[i][i]; } for(int l = 1;l < n;l++) { if(answer == false) { break; } for(int i = 0;i + l < n..
2022.06.02 -
[Codeforces] Sum of Substrings
대회에서는 C번부터는 문제를 읽지 못해서 그 다음날에도 쭉 풀고 있다. 우선 내가 계획한 풀이 방법은 단순한 DFS이다. 이미 탐색해본 string은 패스하고, string마다 $f$함수를 계산하여 최솟값을 찾아낸다. 그런데 최대 길이가 $10^5$이기 때문에 최대 시간인 1초를 넘어간다. 즉 더 효율적인 풀이 방법이 있다는 것이다. face value Hint 1. What is the contribution of each 1? Hint 2. At what position would 1 contribute less? 해당 string을 분해해보면 크게 sum에 기여하는 방식은 세 가지이다. 1. 맨 앞 자리에서의 수 이 경우에는 sum에 한 번만 기여한다. 즉 하나의 1에 10이 더해지는 셈이다. 2...
2022.06.01 -
[Codeforces] Shoe Shuffling
이제는 백준에서 더 나아가 영어로 알고리즘 풀이를 해보고 싶어서 망설임없이 코드 포스에 입문했다. 마침 코드 포스에 가입한 다음날에 열리는 대회에 참가해보았다. 결과는 확실히 망했다... 흑흑 그래도 첫 도전에 의미를 담으며...ㅎㅎ 대회 중간에 통과하지 못했던 Problem B를 대회 이후에 풀어보았다. 알고보니 어이 없는 잘못을 저질러서 실패했던 것이었다. https://codeforces.com/contest/1691/problem/B Problem - B - Codeforces codeforces.com 핵심 💚 학생들의 신발 사이즈 $s_{i}$가 비내림차순(non-decreasing)으로 정렬되어있다. 💚 학생들은 본인의 신발을 안 신고, 본인의 사이즈와 동일하거나 큰(greater than ..
2022.06.01 -
API와 SDK
시스템 호출과 유사한 용어로 API(Application Programming Interface, 응용 프로그램 인터페이스)와 SDK(System Developer's Kit, 시스템 개발자용 키트)가 있다. API 응용 프로그램이 자신과 연관된 프로그램을 만들 수 있도록 제공하는 인터페이스 포토샵은 필터를 개발하려는 사람들을 위해 다양한 프로그래밍 인터페이스를 제공 API는 시스템 호출보다 광범위한 개념이며, 운영체제의 API를 시스템 호출이라고 정의할 수 있다. SDK 프로그램 개발자를 위해 API 및 API 사용 매뉴얼 뿐만 아니라 프로그램 개발에 필요한 코드 편집기와 에뮬레이터 같은 각종 개발용 응용 프로그램까지 하나로 묶어서 배포하는 개발 툴을 말한다. 한 마디로 개발자를 위한 종합 선물 세트라..
2022.05.31 -
서버가 없는 P2P vs. 서버가 있는 P2P(feat. 블록체인)
서버-클라이언트 구조의 서버 과부하 문제점으로 P2P 시스템이 등장하였다. P2P 시스템은 서버가 없는 완전 P2P 시스템과 서버가 있는 P2P 시스템으로 나뉜다. 메신저는 사용자 인증과 출석 정보, 과거 데이터 보관 등을 위해 서버가 있는 P2P 시스템이고, 서버가 없는 P2P 시스템의 대표적인 예로는 비트코인의 블록체인을 꼽을 수 있다. 비트코인은 인터넷상에 존재하는 가상화폐로, 비트코인을 사거나 팔 때 누가 얼마만큼 사고팔았는지를 장부에 기록해야 한다. 실제 화폐라면 은행 데이터베이스에서 관리하겠지만 실물이 없는 가상화폐의 경우 그 기록을 누가 관리할지 정할 수 없다. 혹여 관리자를 정한다 하더라도 누군가가 장부를 조작하거나 없애면 화폐의 가치가 사라질 것이다. 이에 비트코인은 블록체인 기법을 사용..
2022.05.31 -
데몬이란?
클라이언트/서버 시스템에서는 서버가 멈추지 않고 계속 작동하여 클라이언트의 요청을 처리해야 하는데, 이렇게 멈추지 않고 계속 작동하는 프로그램을 데모(daemon)이라고 한다. 보통은 데몬을 가진 컴퓨터를 서버라고 부르며, 웹 데몬이 설치된 컴퓨터는 웹 서버, FTP 데몬이 설치된 컴퓨터는 FTP 서버, 이메일 데몬이 설치된 컴퓨터는 이메일 서버라고 한다. 웹 데몬의 역할을 하는 프로그램으로는 아파치 톰캣(Apache Tomcat), IIS(Internet Information Service) 등이 있다.
2022.05.31