분류 전체보기
CH3- Transport layer
rdt3.0: channels with errors and loss ACK가 잘 전달되지 못할수도 있다고 가정하는것이다. 해결밥: reasonable amount of time을 샌더가 기다리는 것이다. 이 시간안에 도착하지 않으면 ack를 다시 보낸다. 만약 패킷이 잃어버린게 아니라 그냥 로스면, 다시 보매면 복제가 된다. 하지만, sequence number가 이것을 해결한다. countdown timer를 사용해서 reasonable한 시간이 지나면 몬가 행위를 취한다. 패킷을 잘 받았을 경우, 패킷을 잃어버렸을때, ack 패킷을 일어버렸을 때의 경우, 리시버는 이미 1을 받았기때문에, 1이 오면 버린다. ack이 딜레이 되는 경우, 이미 받은건 무시한다. L/R이 실제로 바쁜 시간이다. 그리고 R..
프로그래머스 Greedy C++ 체육복
내가 푼 풀이 방식과는 다르게 매우 효율적인 방식이 있어서 소개한다. 먼저, student라는 배열에 하나가 더있으면 +1, 없으면 -1을 저장하는 방식이다. programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번� programmers.co.kr #include #include using namespace std; int student[35]; int solution(int n, vector lost, vector reserve) { int answer = 0;..
C++ google style convention 과 CppCoreGuidelines
[CppCoreGuidelines 한국어 번역] 핵심 가이드라인의 목적은 개발자들이 모던 C++ (현재는 C++17)을 받아들이고 보다 일관적인 형태의 스타일로 코드를 작성하도록 하는 것이다. 이 문서에서 다루고 있는 규칙들이 모든 코드에 효과적으로 적용할 수 있다고 생각하지는 않는다. 오래된 시스템을 새롭게 업그레이드하는 것은 쉽지 않은 일이다. 하지만 여기서 다루는 규칙들을 적용한다면 기존의 방식보다 오류가 발생할 가능성이 낮고, 유지 보수가 편리한 코드를 작성할 수 있을 것이라 확신한다. 또한 이러한 규칙들은 개발 초기에 좀 더 빠르고 쉽게 개발을 진행하는 데도 도움이 될 것이다. 분명히 말할 수 있는 것은, 이러한 규칙들을 적용하면 제로-비용 원칙(Zero-overhead principle)에 입..
백준 14500번 - 테트로미노
www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변� www.acmicpc.net 하나 하나 블럭별로 나올수 있는 경우의 수를 계산하면, 각 블럭별로 2,1,8,4,4의 경우의 수가 된다. 이걸 전부 더하면 19가지의 블럭의 경우의 수가 나올수 있다. 이걸 전부 하나씩 해봐주면된다. 1 #include 2 using namespace std; 3 int a[500][500]; 4 int main() { 5 int n, m; 6 cin >> n >> m; 7 for (int i=0; i a[..
백준 1476번 : 날짜 계산
www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타�� www.acmicpc.net #include using namespace std; int main() { int E,S,M = 0; cin >> E >> S>> M; E -=1; S -=1; M -=1; int i = 0; while(1){ if( (i%15 == E) &&(i%28 == S) && (i%19 == M) ){ cout
백준 3085번 - 사탕게임
전략: brute force N×N크기의테이블에사탕이있다.(N≤50) 인접한두칸을고르고,사탕을교환한다. (N의 제곱) 그다음,같은색으로이루어져있는가장긴연속부분행또는열을고르는문제 (N의 네제곱) 더 좋은 알고리즘: 자기가 건든 열과 행만 바꾼다. #include #include #include using namespace std; int check(vector colors){ int answer = 1; int size = colors.size(); for(int i = 0; i colors[i]; } int answer = 0; for(int i = 0; i