목록전체 (348)
파게로그
문제 링크: 1012번 제목 https://www.acmicpc.net/problem/1012 연결된 노드의 집합의 개수를 구하는 문제이다. 앞선 문제처럼, visited를 선언하지 않고도 0, 1, 2로 구분하는 방식으로 해서 문제를 풀어갈 수도 있다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int[] drow = {0, 0, 1, -1}; static int[] dcol = {1, -1, 0, 0}; static class Pos { int row; int col; Pos(int row, in..
문제 링크: 2667번 단지번호붙이기 https://www.acmicpc.net/problem/2667 흔히 말하는 섬 개수와, 각 섬의 면적을 구하는 문제이다. 이 문제에서 섬 개수는 단지의 수, 각 섬의 면적은 각 단지의 집의 수를 뜻한다. DFS 함수 진입 후, 해당 칸이 집이 없는 칸이라면 즉 map[row][col] != 1이라면 함수를 빠져나온다. 그렇지 않을 때에는 해당 칸을 '집이 있으며, 방문을 하였음'이라는 의미로 2로 바꾸어준다. 그리고 집이 있는 칸을 방문하였기에 면적을 1만큼 더해준다. 그 후 지도의 범위를 벗어나지 않는, 동서남북 방향의 칸에 대해서 DFS 함수를 호출하고, 호출된 함수가 반환하는 areaSize 값을 호출한 함수의 areaSize에 할당한다. 이렇게 하면 가장 ..
문제 링크: 2606번 바이러스 https://www.acmicpc.net/problem/2606 서로 연결된 노드들의 집합 개수를 구하는 문제이다. 1번 컴퓨터와 네트워크 상에서 직접 연결된 컴퓨터의 수를 구하면 되므로, 모든 탐색을 끝마친 후 visit 배열의 true 개수를 모두 세고, 1번 컴퓨터를 뺀 값을 출력한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = ne..
문제 링크: 1260번 제목 https://www.acmicpc.net/problem/1260 DFS와 BFS를 구현해보는 가장 기초적인 문제이다. 먼저 그래프 문제의 경우 입력부터 신경쓸 필요가 있다. 그래프가 인접 행렬로 주어진 경우와 인접 리스트로 주어진 경우를 나누어 생각해야 한다. 인접 행렬로 주어지는 경우에는 2차원 배열로 받는 것이 일반적이며, 인접 리스트로 주어지는 경우에는 ArrayList[]를 쓰는 편이 좋다. 2중 ArrayList를 사용하게 되면 get과 set을 사용하게 되어 보기에 흉하다(?). 다만 원칙은 2중 ArrayList를 쓰는 것이며, 따라서 컴파일 경고를 피할 수는 없으며 무시할 수는 있다. DFS는 stack을 별도로 만들어두고서 함수를 호출해도 되지만, 재귀적으로..
OSI(Open Systems Interconnection) 7 Layer 사용자 지원 계층 Application Layer Presentation Layer Session Layer 전송층 Transport Layer 네트워크 지원 계층 Network Layer Data Link Layer Physical Layer OSI 7 Layer와 TCP/IP의 차이 https://www.electronicdesign.com/unused/article/21800810/whats-the-difference-between-the-osi-sevenlayer-network-model-and-tcpip OSI 7 Layer로 나누는 이유 데이터의 흐름을 한 눈에 볼 수 있다. 문제 해결이 편리하다. 장비들 간의 호환성이..
UTP(Unshielded Twisted-Pair) cf. STP(Shielded Twisted-Pair): EMI(Electro Magnetic Interference)를 줄이기 위한 절연체로 감싸져 있음 카테고리별 카테고리1 주로 전화망에 사용 카테고리2 데이터 전송 (최대 4Mbps) 카테고리3 10 Base T 네트워크에 사용 최대 10Mbps (구성에 따라 최대 100Mbps가 가능하지만 실제론 드묾) 예전에는 UTP 케이블을 대표했었음 카테고리4 토큰링 네트워크에서 사용 최대 16Mbps 카테고리5 최대 100Mbps를 지원하는 Fast Ethernet용으로 사용되었음 기가비트 표준이 완성되면서 이를 통해서도 기가비트 속도의 데이터 전송 가능 카테고리6 (최근에 가장 많이 사용됨) 기가비트 이..
Unicast 현재 네트워크상에서 가장 많이 사용되는 통신 방식 특정 목적지의 주소 하나만을 가지고 통신하는 방식 목적지 주소가 아닌 다른 PC들의 CPU 성능을 저하시키지 않음(CPU에 인터럽트를 걸지 않고 랜카드가 이 프레임을 버림) Broadcast 로컬 랜(라우터에 의해서 구분된 공간. 브로드캐스트 도메인)에 붙어있는 모든 네트워크 장비들에게 보내는 통신 브로드캐스트의 주소는 FFFF.FFFF.FFFF로 정해져 있고, 이 주소에 한해서 랜카드는 자신의 맥 주소와 다르더라도 이 브로드캐스트 패킷을 CPU로 보낸다. 전체적인 트래픽 증가 및 이 패킷을 받은 모든 PC의 CPU 성능이 저하됨 ARP, 라우터끼리의 정보 교환, 다른 라우터를 찾을 때, 서버들이 자신이 어떤 서비스를 제공한다는 것을 모든 ..
인터넷의 프로토콜은 TCP/IP이므로 IP 주소만 사용하지 않을까 싶은데, 이 경우에도 ARP(Address Resolution Protocol)라는, IP 주소를 MAC 주소로 변환하는 절차를 밟아 실제로는 MAC 주소가 사용된다. MAC(Media Access Control) Address 네트워크에 사용되는 모든 기기의 고유 번호. 48bit(6octet, octet=8bit) 랜카드뿐만 아니라 그것을 포함하는 서버도, 그리고 라우터, 스위치 등 모든 기기가 MAC 주소를 가진다. 8자리마다 하이픈, 콜론, 온점을 통해 구분한다. // 0000 0000.0110 0000.1001 0111.1000 1111.0100 1111.1000 0110 MAC 주소의 표현 00-60-97-8F-4F-86 00:..