분류 전체보기
-
백준(Baekjoon)알고리즘 <문제번호 1009> - 분산처리백준문제정리 2020. 4. 7. 16:59
문제 재용이는 최신 컴퓨터 10대를 가지고 있다. 어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고, 10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다. 1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... , 10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ... 총 데이터의 개수는 항상 a^b개의 형태로 주어진다. 재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다. 이를 수행해주는 프로그램을 작성하라. 출력 각 테스트 케이스에 대해 마지막 데이터가 처리되는 컴퓨터의 번호를 출력한다 풀이 이 문제는 보기에는 단순해 보인다. 그냥 p..
-
백준(Baekjoon)알고리즘 <문제번호 1003> - 피보나치백준문제정리 2020. 4. 5. 20:11
문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다. fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출한다. 두 번째 호출한 fibonacci(1)은 1을 출력하고 1을 리턴한다. fibonacci(0)은 ..
-
전송 계층 - TCP, UDP 프로토콜네트워크 기초 2020. 4. 2. 15:29
오늘은 네트워크 7 계층 중 전송(Transport) 계층에 대해서 설명을 해보려고 합니다. 전송 계층 전송 계층은 네트워크 구성요소와 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공한다. (wikipedia - 전송 계층의 정의) 쉽게 말하자면 전송 계층은 데이터를 목적지에 보내거나 목적지에 도달을 하는 데 신뢰 정보를 확인하는 계층입니다. 목적지까지 가려고 하는 데이터의 전송 과정 중에 발생할 수 있는 다양한 오류(데이터 손실, 유실 등등)를 처리하는 곳이라고 생각하시면 편합니다. 또한 전송된 목적지가 어떤 응용프로그램인지 판별해주는 기능을 한답니다. 쉽게 예를 들면 우리가 누군가에게 메일을 보낸다고 했을 때 메일 전송 프로그램을 통해서 전송이 되어야 하는데 다른 타 프로그램으로 전송되..
-
백준(Baekjoon)알고리즘 <문제번호 1004> - 어린왕자백준문제정리 2020. 3. 29. 00:56
문제 어린 왕자가 한 점(출발)으로 부터 한 점(도착점)으로 이동을 하려고 하는데 지나가야 하는 행성계들이 여러 개가 존재한다. 이 행성계를 피해서 지나가려면 어떻게 해야 할까? 초기 입력 출발 지점(start_x1,end_y1) 도착 지점(satrt_x2, end_y2) 가 존재하고 여러 개의 행성들의 중심(c_x,c_y) 반지름 (r)을 입력하여 어린 왕자가 몇 개의 행성계를 지나가는지 풀어본다. 풀이 우선 나의 처음 드는 생각은 행성계마다 반지름이 존재하기 때문에 반지름을 이용하여 행성계 중심으로부터 얼마나 떨어져 있는지 확인하면 될 것이라고 생각을 하였는데 조금의 오차가 있었다. 그래서 두 점 사이의 거리를 이용하여 출발지점과 도착지점 사이에 경계가 있는지 확인하면 되겠다고 생각하여 문제를 풀었다..
-
OSI 모델과 TCP/IP 모델?네트워크 기초 2020. 3. 28. 17:57
네트워크에서는 여러 가지 계층에서 규칙을 정한 구조로 되어 있습니다. 우리는 그저 누군가에게 이메일로 문서를 하나 보낼 때 나의 이메일 주소를 쓰고, 제목을 쓴 다음 상대방의 주소를 쓰고, 내가 보낼 문서를 담은 다음 상대방에게 보낸다면 상대방은 그 문서를 이메일을 통해서 확인할 수 있죠? 그런데 데이터라는 것은 아날로그 정보가 아니기 때문에 비트 0, 1 연산을 통해서 전달이 된답니다. 우리는 한국어, 영어로 글을 쓰지만 실제로 컴퓨터는 이를 0과 1로 변환하여 주소 등을 붙여서 전달을 하는데요. 이는 컴퓨터의 계층을 통해서 이동합니다. 그럼 어떤 계층을 통해서 전달이 되는지 알려드릴게요~ OSI 모델이란? 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나..
-
완전 이진트리(Complete Binary Tree)와 힙(Heap)의 쉬운 설명!!C++ 와 자료구조 2020. 3. 27. 15:59
자료구조(data structure)에서 트리구조와 힙은 굉장히 중요한 개념이기 때문에 개념에 대한 명확한 이해와 인덱스 속성을 잘 알아야 코딩하는데 큰 도움이 된다. 이번 글에서는 힙과 완전 이진 탐색 트리가 어떻게 값들을 구성하는지 설명해 보겠다. 이진트리(Binary Tree) 이진 트리는 노드로 구성되어 있는 트리 구조로 동그란 마크로 되어 있는 부분이 노드들이고 노드들은 서로 포인터로 연결되어 있다. 이는 계층 구조로 표현한 형태인데, 각각의 노드에는 키(instance)가 존재한다. 리스트를 공부하다보면 나오는 노드에 개념과 동일하다고 보아도 무방하다. 노드 들을 살펴보면 위에 있는 노드는 부모 노드라고 하며 아래 있는 노드들을 자식 노드들이라고 한다. 이진트리는 자식 노드의 개수가 2개인 구..
-
SDK란? (Software Development Kit) 종류는 무엇이 있을까?카테고리 없음 2020. 3. 26. 17:54
API와 SDK는 프로그래머라면 뗄래야 뗄 수 없는 용어인데요. 지난 글에서 API에 대해서 간략하게 설명해드렸습니다. 오늘은 SDK가 정확히 무엇인지 구분해보고 정리해보려고 합니다. SDK는 무엇인가? SDK는 Software Development Kit의 약자로 프로그래머들을 위해서 제공하는 개발 도구들입니다. 예를 들면, 소프트웨어 프레임워크들, 운영체제, 컴퓨터 시스템, 게임 등을 위한 응용 프로그램을 만들 수 있도록 해주는 도구인데요. iOS 응용프로그램을 개발하시는 분이라면 iOS SDK를 다운 받으셔야 하는 것처럼 특정 소프트웨어를 개발하기 위한 키트입니다. SDK안에는 IDE(통합개발환경)을 포함합니다. 또한 여러개의 API와 단일 API도 들어 있을 수 있습니다. 디버깅 기능도 당연히 들..