전체보기 433

[백준 2667] 단지번호붙이기(DFS-깊이우선탐색)

안녕하세요. BlockDMask 입니다.날이 갑자기 추워졌네요;; 다들 ;; 옷 따숩게 입으시길;;오늘자 문제 시작하겠습니다.이번 포스트는 단지번호 붙이기를 DFS 방식으로 풀었습니다.단지번호 붙이기 BFS 방식으로 푼 글은 [여기] 있습니다.0. 제목백준 2667 단지 번호 붙이기BOJ 2667 단지 번호 붙이기1. 문제 설명 과 같이 정사각형(5

[Linux] 우분투(Ubuntu) 설치하기(1/2)

안녕하세요. BlockDMask 입니다.이번시간에는 VM Virtual Box 에 우분투(Ubuntu) 리눅스(Linux)를 설치하는 과정을 살펴보겠습니다. [ Virtual Box에 우분투(Ubuntu) 설치하기!! ] 우선, Virtual Box가 설치 되어있어야 합니다.설치 과정은 [여기] 에 있습니다. 1. 우분투(Ubuntu)를 설치할 가상 머신 만들기 > 새로 만들기를 클릭 합니다. > 우분투를 설치 할 예정이므로 이름, 종류 버전을 알맞게 기입합니다. > 메모리 크기를 지정합니다. 추천해주는 대로 1024MB로 설정합니다. > "지금 새 가상 하드 디스크 만들기"를 클릭 해 줍니다. > 가상 하드 디스크를 만들 것 이므로 2번째 것을 선택해 줍니다. > 용량을 고정크기로 해줍니다. 각각의 장..

[탐색] lower_bound, upper_bound

안녕하세요. BlockDMask 입니다.오늘은 이진탐색과 유사하나 조금 다른 lower_bound 와 upper_bound에 대해 알아보겠습니다.1. lower_boundlower_bound 란? - 이진탐색(Binary Search)기반의 탐색 방법입니다. (배열 또는 리스트가 정렬 되어있어야 한다.) - lower_bound는 찾으려 하는 key값이 "없으면" key값보다 큰 가장 작은 정수 값을 찾습니다. - 같은 원소가 여러개 있어도 상관 없으며, 항상 유일한 해를 구할 수 있습니다. - 구간이 [start, end]인 배열이 있을때, 중간위치의 index를 mid 라고 하면, arr[mid-1] = key 인 최소의 m 값을 찾으면 됩니다. (m>=2) 직접 ..

[백준 1764] 듣보잡

안녕하세요. BlockDMask 입니다.연휴도 끝났고;; 많이 쉬었네요;; ㅠㅠ오늘의 문제 풀어보겠습니다.0. 제목백준 1764 듣보잡BOJ 1764 듣보잡문제 이름이 참.. 듣보잡이라니 ㅎㅎ 1. 문제 설명 듣지도 못한 사람의 명단과, 보지도 못한 사람의 명단이 주어질 때, 듣지도 보지도 못한 사람의 명단을 구하는 프로그램을 작성하시오. 입력 -- 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄 부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터는 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 영어 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M 은 500,000 이하의 자연수이다. 출력 -- 듣보잡의 수와 그 명단..

[컴퓨터 기초] 데이터의 단위

안녕하세요. BlockDMask 입니다.이번 글에서는 컴퓨터 정보 크기의 단위에 대해 알아보도록 하겠습니다. - 컴퓨터에서 정보를 나타내는 최소 단위는 비트(bit)로써 0과 1로 구성되어있습니다. - 8개의 비트를 묶어서 바이트(byte)라는 단위로 나타내는데 이를 기본 정보처리의 단위로 사용합니다.Kilobyte(KB) / 2^10 / 10^3 2의 10제곱이 1024 이므로 오차는 존재하지만, 10^3인 1000과 비슷하여 단위를 10^3으로 나타냅니다. Megabyte(MB) / 2^20 / 10^6 Gigabyte(GB) / 2^30 / 10^9 Terabyte(TB) / 2^40 / 10^12 Petabyte(PB) / 2^50 / 10^15

[탐색] 이진탐색 (Binary Search) 구현 방법

안녕하세요. BlockDMask 입니다. 알고리즘 코딩 사이트(백준 온라인 저지)에서 '수 찾기' 문제를 풀다가 이진탐색(Binary Search)이 나와서, 이번 기회에 정리를 해볼까 합니다. 1. 이진탐색(Binary Search) 이란.이진 탐색 알고리즘(Binary Search Algorithm)은 오름차순으로 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘 입니다. 오름차순으로 정렬된 리스트의 중간 값을 임의의 값으로 선택하여, 찾고자 하는 Key값과 비교하는 방식으로 돌아가는 알고리즘 입니다. 정렬된 리스트에서만 사용할 수 있다는 단점이 존재합니다. 검색이 될때마다 선형탐색(Linear Search)와는 비교할 수 없게 빨라집니다. 2. 이진탐색(Binary Search)의 시간 복잡도 입..

[Linux] Virtual box 설치하기

안녕하세요. BlockDMask 입니다.윈도우에 virtual box를 설치 한 후 리눅스(Ubuntu)를 설치 하는 것을 작성해보겠습니다.이번 글에서는 윈도우에 Virtual box를 설치하는 방법을 알아보겠습니다. 1. Window OS에 virtual box(가상머신) 설치하기!Oracle에서 제공해주는 VM(가상머신)인 VirtualBox를 설치합니다.아래 URL에 들어가서 Download 클릭!https://www.virtualbox.org/ 클릭을 하면 아래와 같은 화면이 나옵니다> hosts로 지정할 OS를 선택합니다.(=virtual box를 다운받을 컴퓨터의 OS를 선택하면 됩니다!) 저는 Window Desktop에 받을 거기 때문에 Windows Hosts를 클릭해서 다운 받았습니다...

[백준 1920] 수 찾기 (이진탐색)

안녕하세요. BlockDMask 입니다. 오늘은 '수 찾기' 라는 문제를 풀어보았습니다.음..은근히 생각을 하게 하는 문제였습니다. '시간초과' 때문에;; ㅎㅎ 170906 문제 빼먹음 -> 171008 완료0. 제목백준 1920 수 찾기 (이진탐색)BOJ 1920 수 찾기 (Binary Search)1. 문제설명 N개의 정수 A[1], A[2], A[3], A[4], ..., A[N-2], A[N-1], A[N] 이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 구현하면 됩니다. 입력 -- 첫째 줄에 자연수 N(1

[백준 2562] 최대값

안녕하세요. BlockDMask 입니다.오늘의 문제 풀어보겠습니다. 170905 문제 빼먹음 -> 171008 완료0. 제목백준 2562 최대값BOJ 2562 최대값1. 문제 설명 9개의 서로 다른 자연수가 주어질 때, 이들 중 최대값을 찾고 그 최대값이 몇 번째 수인지 구하는 프로그램을 만들면 됩니다. 예를들어, 서로 다른 9개의 자연수 3, 29, 30, 12, 55, 80, 9, 92, 60 이 주어지면, 이들 중 최대값은 92 이고 이 값은 8번째 수 입니다. 주어지는 자연수의 크기는 100보다 작습니다. 2. 풀이 과정 배열에 각 수를 저장한 후 선형탐색을 이용하여 배열 전체를 탐색하는 방법으로, 최대값을 구하는 방식으로 풀면 됩니다. 3. 코드 123456789101112131415161718..

[알고리즘의 정의] Algorithm?

[Algorithm ?] 주어진 문제를 해결하기 위한 단계, 절차 또는 여러 동작의 모임를 말한다. 이 절차에는 입력값과 출력값이 존재해야하며, 유한한 단계를 거쳐서 반드시 종료 되어야 한다. 입력 : 외부에서 제공되는 자료가 0개 이상 존재해야한다.출력 : 적어도 1개 이상의 서로 다른 결과를 내어야 한다.(즉 모든 입력에 하나의 출력이 나오면 안됨)명확성 : 수행 과정은 명확하고 모호하지 않은 명령어로 구성되어야 한다.유한성(종결성) : 알고리즘의 명령어들은 끝이 있는 계산을 수행한 후에 종료해야 한다.(출처-동아출판 중학교 정보책 날짜-2017-7-11)효율성 : 모든 과정은 명백하게 실행 가능(검증 가능)한 것이어야 한다. https://ko.wikipedia.org/wiki/%EC%95%8C%E..