[c++] 백준 1758: 알바생 강호 🥈실버 4 https://www.acmicpc.net/problem/1758 1758번: 알바생 강호 첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같 www.acmicpc.net 손님들은 자기가 커피를 몇 번째 받는지에 따라 팁을 다른 액수로 강호에게 준다. 각 손님은 강호에게 원래 주려고 생각했던 돈 - (받은 등수 - 1) 만큼의 팁을 강호에게 준다. 만약, 위의 식으로 나온 값이 음수라면, 강호는 팁을 받을 수 없다. 접근 돈을 많이 주려고 한 사람이 앞에 설 수록 강호가 받을 수 있는 팁의 액수가 ..
[c++] 백준 2217: 로프 🥈실버 4 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 접근 중량이 어쨌든 간에 중요한 것은 두가지이다. 1. 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개만 골라도 된다. 2. 각각의 로프에는 모두 고르게 w/k 만큼의 중량만 걸린다. 예제 입력1을 그림으로 나타내면 다음과 같다. 위의 경우에는 다음과 같은 경우의 수로 물체를 들어올릴 수 있다. 1. 15kg 로프 하나로 든다. > 15 ..
컴퓨터 네트워크 09 : NAT NAT이란? Network Address Translation 하나의 공인 IP 주소를 사용하여 여러 대의 호스트(컴퓨터)가 인터넷에 접속할 수 있도록 하는 기술. 부족한 공인 IP를 절약할 수 있는 효과가 있다. 1:1 NAT 사설 IP 1개당 공인 IP 1개로 매칭시키는 것. 3대의 PC중 사설 IP를 가진 PC 하나가 DNS서버로 DNS 쿼리(특정 도메인의 IP주소를 물어보는 행위)를 시도한다. Firewall이 외부로 나가는 패킷을 인식하게 되면, 출발지의 IP 주소를 자신의 공인 IP 주소로 변경하고, 별도의 NAT 테이블을 보관하게 된다. 따라서 192.168.0.1은 Firewall를 통과하는 과정에서 1.254.223.4로 IP가 변환된다. DNS는 1.25..
컴퓨터 네트워크 08 : 라우팅 라우터: 다른 네트워크와의 연결을 통해 패킷을 전송할 수 있도록 하는 장치. 목적지까진의 경로를 설정해주는 역할을 한다. 라우팅 알고리즘의 목표는 송신자로부터 수신자까지 라우터의 네트워크를 통과할 때의 최소 비용 경로를 결정하는 것이다. 라우팅 알고리즘의 분류 중앙 집중형 vs 분산형 중앙 집중형 네트워크 전체에 대한 완전한 정보를 가지고 출발지와 목적지 사이 최소 비용 경로를 계산하는 알고리즘. 연결과 링크 비용에 대한 완전한 정보를 가져야한다. 이를 Link-State, LS 알고리즘이라고 한다. 분산형 최소 비용 경로의 계산이 라우터들에 의해 반복적이고 분산된 방식으로 수행된다. 어떤 노드도 모든 링크의 비용에 대한 완전한 정보를 갖고 있지 않다. 각 노드는 자신에게..
컴퓨터 네트워크 07 : 네트워크 계층, IP 주소의 구조, 서브넷 네트워크 계층 데이터 링크 계층에서는 이더넷 규칙을 기반으로 같은 네트워크에 있는 컴퓨터로는 데이터 전송이 가능하나, 다른 네트워크로는 전송 불가능. 이를 위해서 네트워크 계층 기술이 필요함. 네트워크 계층: 다른 네트워크와 통신하기 위한 경로 설정을 위해 라우터를 통한 라우팅을 하는 방식으로 패킷 전송을 담당. 라우터: 다른 네트워크와의 연결을 통해 패킷을 전송할 수 있도록 하는 장치. 어떤 경로로 가는 것이 좋은지 알려주기도 함. MAC 주소는 LAN에서만 통신할 수 있기 때문에 다른 네트워크에 데이터를 보낼 수 있는 주소가 필요했고, 이 역할을 IP 주소가 하게 된다. IP(Internet Protocol) 주소: 컴퓨터 네트워크에..
[c++] 백준 1343 : 폴리오미노 🥈실버 5 https://www.acmicpc.net/problem/1343 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 접근 입력값을 순회하면서 X를 만나면 count 변수를 1씩 증가시킨다. XX를 처리해야 하는 경우는 크게 두가지가 있다. 1. XX 다음 X가 오지 않을때(.이 오거나 맨 끝의 경우) -> AAAA가 들어갈 때까지 더 기다릴 필요가 없으므로 BB를 박는다. 2. XX 다음 X가 올 때 -> 더 기다리면 AAAA를 박을 수 있으므로 처리하지 않는다. 이렇게 진행하다가 count가 4가 되면 AAAA를 박는다. .이 오는 경우의 처리 count가 홀수가..