분류 전체보기(619)
-
컴퓨터 네트워크 (8), Transport Layer 2
Transport Layer 2 1. Socket Programming 전통적인 TCP/IP, UDP/IP를 트랜스 포트로 삼고, IP layer를 네트워크 계층으로 삼는 통신 기술 1) Socket Programming이란? - 컴퓨터를 식별할 수 있는 IP 주소와 소프트웨어를 지칭할 수 있는 포트 번호를 활용하면 유니크한 소프트웨어를 찾아갈 수 있다. 특정 노드의 엔드포인트가 되는 것이 소켓이었다. - 소켓은 TCP/IP의 IP address와 포트번호에 해당하는 번호이다. 이를 활용해 특정 장치의 특정 프로그램을 찾아갈 수 있다. - 네트워크에서 각각 두개의 엔드포인트를 찾아갈 수 있다. 번호이기에 테이블 형태로 관리한다. - TCP를 돌리기 위한 컴퓨터 메모리 공간이나 프로세스 등이 만들어져서 네..
2022.05.24 -
백준 온라인 저지, BFS / 1707번: 이분그래프 (파이썬 / 백준 골드문제)
문제 주소: https://www.acmicpc.net/problem/1707 문제 그래프의 정점의 집합을 둘로 분할하여, 각 집합에 속한 정점끼리는 서로 인접하지 않도록 분할할 수 있을 때, 그러한 그래프를 특별히 이분 그래프 (Bipartite Graph) 라 부른다. 그래프가 입력으로 주어졌을 때, 이 그래프가 이분 그래프인지 아닌지 판별하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 두고 순서대로 주어진다. 각 정점에는 1부터 V까지 차례로 번호가 붙어 있다. 이어서 둘째 줄부터 E개의 줄에 걸쳐 간선에 대한 정보가 주어..
2022.05.24 -
백준 온라인 저지, 자료구조 / 5568번: 카드놓기 (파이썬 / 백준 실버문제)
문제 주소: https://www.acmicpc.net/problem/5568 문제 상근이는 카드 n(4 ≤ n ≤ 10)장을 바닥에 나란히 놓고 놀고있다. 각 카드에는 1이상 99이하의 정수가 적혀져 있다. 상근이는 이 카드 중에서 k(2 ≤ k ≤ 4)장을 선택하고, 가로로 나란히 정수를 만들기로 했다. 상근이가 만들 수 있는 정수는 모두 몇 가지일까? 예를 들어, 카드가 5장 있고, 카드에 쓰여 있는 수가 1, 2, 3, 13, 21라고 하자. 여기서 3장을 선택해서 정수를 만들려고 한다. 2, 1, 13을 순서대로 나열하면 정수 2113을 만들 수 있다. 또, 21, 1, 3을 순서대로 나열하면 2113을 만들 수 있다. 이렇게 한 정수를 만드는 조합이 여러 가지 일 수 있다. n장의 카드에 적힌..
2022.05.24 -
컴퓨터 구조 (7), Pipelining
Pipelining - 매 사이클마다 단계를 진행할 수 있도록 하는 파이프라인 버퍼가 위와같이 존재한다. - MIPS는 최대 5단계가 존재해 이를 효율적으로 사용하고자 했다. Pipeline Hazards - 파이프라인을 사용했을 때 빠르게 처리하다보니 결과값이 달라질 수 있는 이슈가 존재한다. - 크게 Structural hazards, Data hazards, controal hazards가 있다. - Structural hazards는 메모리를 나눠서 해결할 수 있다. - Data hazards는 stall을 통해 이를 해결할 수 있지만 성능이 많이 떨어진다. 대표적인 Data hazards로는 Read After Write 문제가 발생할 수 있다. 데이터 포워딩을 해 write에 대해 데이터가 쓰..
2022.05.23 -
백준 온라인 저지, 자료구조 / 1302번: 베스트셀러 (파이썬 / 백준 실버문제)
문제 주소: https://www.acmicpc.net/problem/1302 문제 김형택은 탑문고의 직원이다. 김형택은 계산대에서 계산을 하는 직원이다. 김형택은 그날 근무가 끝난 후에, 오늘 판매한 책의 제목을 보면서 가장 많이 팔린 책의 제목을 칠판에 써놓는 일도 같이 하고 있다. 오늘 하루 동안 팔린 책의 제목이 입력으로 들어왔을 때, 가장 많이 팔린 책의 제목을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고, 알파벳 소문자로만 이루어져 있다. 출력 첫째 줄에 가장 많이 팔린 책의 제목을 출력한다. 만약 가..
2022.05.22 -
백준 온라인 저지, 다이나믹프로그래밍 / 2156번: 포도주시식 (파이썬 / 백준 실버문제)
문제 주소: https://www.acmicpc.net/problem/2156 문제 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고민하고 있다. 1부터 n까지의 번호가 붙어 있는 n개의 포도주 잔이 순서대로 테이블 위에 놓여 있고, 각 포도주 잔에 들어있는 포도주의 양이 주어졌을 때, 효주를 도와 가..
2022.05.22