본문 바로가기

전체 글

(84)
C++ 백준 16496 (큰 수 만들기) 백준 16496 (큰 수 만들기) https://www.acmicpc.net/problem/16496 16496번: 큰 수 만들기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 리스트에 포함된 수가 주어진다. 수는 공백으로 구분되어져 있고, 1,000,000,000보다 작거나 같은 음이 아닌 정수 이다. 0을 제외한 나 www.acmicpc.net 간단한 정렬을 통해 풀 수있는 문제였다. 프로그래머스에도 똑같은 문제가 있는데, 프로그래머스에서 풀다가 백준에 똑같은 문제가 있길래 이 문제로 설명을 하겠다. 설명 아이디어는 간단하다. 어떤 문자열 A와 B가 있을 때 A+B가 큰지 B+A가 큰지를 비교해 정렬을 하면 된다. 아이디어는 참 간결하고 구현도 쉬운데 왜 티어가 플래티넘..
CH4 : Network Layer (3) * 이 글에 관련된 모든 내용은 Computer Networking A Top-Down Approach 7th에서 가져온 내용이다. * DHCP(Dynamic Host Configuration Protocol) DHCP는 host가 켜졌을 때 자동으로 네트워크를 찾게 해주는 프로토콜이다. (예를 들어 우리가 컴퓨터를 키면 컴퓨터가 자동으로 네트워크를 찾아주듯이) DHCP서버는 전원이 켜진 host에게 자신의 서브넷 네에서 사용할 수 있는 IP를 할당해주는데, 한번 IP를 주고나서 host가 네트워크를 사용하지 않는데도 IP를 할당받은 채로 있으면 IP주소의 낭비가 발생한다. 따라서 lifetime도 함께 넘겨줘서 해당 시간내에 다시 요청이 오지 않으면 클라이언트는 할당받은 IP를 반납하는 식으로 구성된다..
C++ 백준 2503 (숫자 야구) 백준 2503 (숫자 야구) https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 간단하게 브루트포스로 해결가능한 문제였다. 처음에 문제를 보고 각 스트라이크와 볼에 대해 경우의 수를 빠르게 줄여볼 방법을 생각했지만 string의 길이가 3이고 전체 수가 1000도 안된다는 점을 보고 그냥 브루트포스로 접근했다. (그래도 0ms가 나오더라..) 설명 설명이라고도 하기 쪼끔 민망하지만 설명해보자면 다음과 같다. 인풋이 세자리 string과 스트라이크,..
C++ 백준 2533 (사회망 서비스 SNS) 백준 2533 (사회망 서비스 SNS) https://www.acmicpc.net/problem/2533 2533번: 사회망 서비스(SNS) 첫 번째 줄에는 친구 관계 트리의 정점 개수 N이 주어진다. 단, 2 ≤ N ≤ 1,000,000이며, 각 정점은 1부터 N까지 일련번호로 표현된다. 두 번째 줄부터 N-1개의 줄에는 각 줄마다 친구 관계 트리의 에 www.acmicpc.net 친구들간의 관계를 그래프로 표현해서 풀 수 있는 문제였다. 또한 중복되는 연산을 막기위해 DP를 사용하는데 설명에서 언급하겠다. 설명 문제 조건을 보면 얼리어답터가 아닌 사람들의 친구들은 무조건 얼리어답터여야 한다. 또한 얼리어답터가 아닌 사람들의 친구들은 얼리어답터이거나 아니어도 된다. 언뜻보면 이분그래프를 생각할 수 있지..
C++ 백준 1202 (보석 도둑) 백준 1202 (보석 도둑) https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net 정렬과 우선순위큐를 이용해 풀 수 있는 문제였다. 설명 우선 가방의 크기를 오름차순으로 정렬한다. => 담긴 vector를 bag이라고 하겠다. 또한 보석의 pair를 무게에 대한 오름차순으로 우선순위 큐에 저장한다. => 해당 큐를 jew라고 하겠다. 준비를 마친 후 과정은 다음과 같다. 정렬된 가방의 크기..
C++ 백준 1339 (단어 수학) 백준 1339 (단어 수학) https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 설명 간단한 정렬로 풀 수 있는 문제였다. 각 자리수에 대해 가중치를 두고 그 가중치를 정렬한 뒤에 가중치가 높은 알파벳부터 9~1까지 차례대로 주면 된다. 예시를 살펴보자 ABB CAD 라는 두 수를 합친다고 가정해보자. 그러면 (100+10)*A + (10+1)*B + 100*C + D 가 될 것인데, 수가 가장 크려면 자신앞에 붙은 상수값이 가장 큰 알파벳에..
CH4 : Network Layer (2) * 이 글에 관련된 모든 내용은 Computer Networking A Top-Down Approach 7th에서 가져온 내용이다. * IPv4 Addressing 각 인터넷 host들은 universally하게 uinque한 IP 주소를 가지고 있다. 라우터와 Layer1 (피지컬 레이어)사이에 있는 인터페이스를 NIC라고 한다. (Network Interface Card) IP는 이 인터페이스의 포트에 적용된다. 한 라우터에 여러개의 호스트가 접근해야 하기 때문에 Multi-homed라고 한다. 여러개의 IP가 접근해 오는 포트를 IP로 구분할 수 있다. IP주소는 계층적 구조를 가진다. network number + host number (총 32비트)로 이루어져 있는데, 같은 network에 존재..
CH4 : Network Layer (1) * 이 글에 관련된 모든 내용은 Computer Networking A Top-Down Approach 7th에서 가져온 내용이다. * 네트워크 레이어 목적지 IP를 base로 하여 host to host간의 패킷 전송을 담당한다. 네트워크 레이어에는 두가지 기능이 있다. 1. Data plane (데이터 전송 담당) - fowarding : 현재 라우터에서 적당한 라우터로 패킷을 어떻게 전송할 것인가? - Per-router fucntion : local의 하나의 라우터에서만 작동한다. 2. Control plane (전송 제어 담당) - routing : source로부터 destination까지 패킷의 route를 어떻게 결정할 것인가? - Network-wide function : Data pla..