본문 바로가기

분류 전체보기

(273)
[백준/c++] 2660 회장뽑기 문제 월드컵 축구의 응원을 위한 모임에서 회장을 선출하려고 한다. 이 모임은 만들어진지 얼마 되지 않았기 때문에 회원 사이에 서로 모르는 사람도 있지만, 몇 사람을 통하면 모두가 서로 알 수 있다. 각 회원은 다른 회원들과 가까운 정도에 따라 점수를 받게 된다. 예를 들어 어느 회원이 다른 모든 회원과 친구이면, 이 회원의 점수는 1점이다. 어느 회원의 점수가 2점이면, 다른 모든 회원이 친구이거나 친구의 친구임을 말한다. 또한 어느 회원의 점수가 3점이면, 다른 모든 회원이 친구이거나, 친구의 친구이거나, 친구의 친구의 친구임을 말한다. 4점, 5점 등은 같은 방법으로 정해진다. 각 회원의 점수를 정할 때 주의할 점은 어떤 두 회원이 친구사이이면서 동시에 친구의 친구사이이면, 이 두사람은 친구사이라고 ..
C++ 정리 절차적 프로그래밍과 객체 지향의 차이 절차지향은 순차적인 처리를 중요시합니다. 컴퓨터 처리 구조와 비슷하므로 상대적으로 빠르지만 유지보수가 힘듭니다. 객체지향은 데이터와 동작을 묶어서 생각하고, 코드의 재사용과 유지보수가 쉽다는 장점이 있습니다. 또한, 객체지향은 캡슐화 상속성 추상화 다형성의 4가지 특징이 있습니다. 객체지향의 4가지 특징 캡슐화, 다형성, 상속성, 추상화입니다. 캡슐화는 객체 스스로가 자신의 상태를 책임지며, 해당 객체의 역할 수행에 집중할 수 있도록 자율성을 높이는 방식을 뜻합니다. 상속성은 부모 클래스가 자식 클래스에게 속성과 기능을 물려주어 부모 클래스의 속성과 기능을 동일하게 사용하는 방식입니다. 상속은 자신의 멤버 변수와 멤버 함수를 자식 클래스에게 물려주는 것입니다. 부모 ..
[백준/c++] 1138 한 줄로 서기 문제 N명의 사람들은 매일 아침 한 줄로 선다. 이 사람들은 자리를 마음대로 서지 못하고 오민식의 지시대로 선다. 어느 날 사람들은 오민식이 사람들이 줄 서는 위치를 기록해 놓는다는 것을 알았다. 그리고 아침에 자기가 기록해 놓은 것과 사람들이 줄을 선 위치가 맞는지 확인한다. 사람들은 자기보다 큰 사람이 왼쪽에 몇 명 있었는지만을 기억한다. N명의 사람이 있고, 사람들의 키는 1부터 N까지 모두 다르다. 각 사람들이 기억하는 정보가 주어질 때, 줄을 어떻게 서야 하는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 ..
[백준/c++] 1120 문자열 문제 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 길이는 B의 길이보다 작거나 같다. 이제 A의 길이가 B의 길이와 같아질 때 까지 다음과 같은 연산을 할 수 있다. A의 앞에 아무 알파벳이나 추가한다. A의 뒤에 아무 알파벳이나 추가한다. 이때, A와 B의 길이가 같으면서, A와 B의 차이를 최소로 하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. A와 B의 길이는 최대 50이고, A의 길이는 B의 길이보다 작거나 같고, 알파벳 소문자로만 이루어져 있다. 출력 A와 B의 길이가 같으면서, A와 B..
[백준/c++] 18405 경쟁적 전염 문제 NxN 크기의 시험관이 있다. 시험관은 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 바이러스가 존재할 수 있다. 모든 바이러스는 1번부터 K번까지의 바이러스 종류 중 하나에 속한다. 1) 시험관에 존재하는 모든 바이러스는 1초마다 상, 하, 좌, 우의 방향으로 증식해 나간다. 단, 매 초마다 번호가 낮은 종류의 바이러스부터 먼저 증식한다. 또한 증식 과정에서 특정한 칸에 2) 이미 어떠한 바이러스가 존재한다면, 그 곳에는 다른 바이러스가 들어갈 수 없다. 시험관의 크기와 바이러스의 위치 정보가 주어졌을 때, S초가 지난 후에 (X,Y)에 존재하는 바이러스의 종류를 출력하는 프로그램을 작성하시오. 만약 S초가 지난 후에 해당 위치에 바이러스가 존재하지 않는다면, 0을 출력한다. 이 때 X와 Y는..
[백준/c++] 2665 미로 만들기 문제 n×n 바둑판 모양으로 총 n2개의 방이 있다. 일부분은 검은 방이고 나머지는 모두 흰 방이다. 검은 방은 사면이 벽으로 싸여 있어 들어갈 수 없다. 서로 붙어 있는 두 개의 흰 방 사이에는 문이 있어서 지나다닐 수 있다. 윗줄 맨 왼쪽 방은 시작방으로서 항상 흰 방이고, 아랫줄 맨 오른쪽 방은 끝방으로서 역시 흰 방이다. 시작방에서 출발하여 길을 찾아서 끝방으로 가는 것이 목적인데, 아래 그림의 경우에는 시작방에서 끝 방으로 갈 수가 없다. 부득이 검은 방 몇 개를 흰 방으로 바꾸어야 하는데 되도록 적은 수의 방의 색을 바꾸고 싶다. 아래 그림은 n=8인 경우의 한 예이다. 위 그림에서는 두 개의 검은 방(예를 들어 (4,4)의 방과 (7,8)의 방)을 흰 방으로 바꾸면, 시작방에서 끝방으로 갈 ..
(3) 쉽게 배우는 데이터 통신과 컴퓨터 네트워크 쉽게 배우는 데이터 통신과 컴퓨터 네트워크를 개인적으로 정리한 내용입니다. MAC 계층 데이터 링크(Data Link) 계층 데이터 링크 계층에서는 호스트가 통신하려면 1:1 형식의 점대점 방식으로 연결이 됩니다. 호스트를 구분하기 위한 주소개념이 필요가 없다는 뜻입니다. 물리적인 오류를 복구하는 역할을 하는 데이터 링크는 재전송 기법을 사용해 상위 계층에 신뢰성 있는 데이터 전송을 보장합니다. 데이터 링크 계층의 동작 원리를 이해하기 위해 프레임들 알기 정보프레임(Information Frame) 상위 계층이 전송을 요구한 데이터를 수신 호스트에 전송하는 용도로 사용 프레임의 순서 번호, 송수신 호스트의 주소 정보를 포함 순서번호는 각 정보 프레임에 부여되는 고유의 일련번호로, 수신 호스트가 중복 프레..
(2) 쉽게 배우는 데이터 통신과 컴퓨터 네트워크 쉽게 배우는 데이터 통신과 컴퓨터 네트워크 내용 정리입니다. 오류제어 데이터 링크 계층 프로토콜이 전송 오류 기능을 제공하려면 우선 오류 발생 여부를 인지할 수 있어야 합니다. 오류를 감지하면 오류를 복구하는 과정이 진행되는데, 컴퓨터 네트워크에서는 일반적으로 송신 호스트가 원래의 데이터를 재전송하는 기법을 사용합니다. 1. 데이터가 깨져서 도착하는 프레임 변형 2. 데이터가 목적지에 도착하지 못하는 프레임 분실 수신 호스트의 응답 프레임 프레임 변형 오류를 확인한 수신 호스트는 송신 호스트에 응답 프레임 전송 원래의 데이터 프레임을 재전송하도록 요구함 송신 호스트의 재전송 기능은 수신 호스트의 부정 응답 흐레임 회신에 의해 이루어짐 긍정 응답 프레임 : 데이터 프레임이 정상적으로 도착했을 때 회신 부정..