We will find a way, we always have.

-interstellar

전체 글 303

[유비쿼터스개론] 유비쿼터스 컴퓨팅을 위한 핵심 기술과 발전 방향 1

📕 1. 개요 유비쿼터스 환경은 모든 사물에 컴퓨팅과 네트워킹 기능을 심는 작업에서 출발한다. 물리 공간에 심을 수 있는 전자적인 요소들은 임베디드 시스템, RFID 태그, 미세 전자기계 시스템(MEMS), 센서, 칩 등이 있다. 이와 같은 초소형 컴퓨터가 물리 공간에 심어지고 광대역, 위성, Wi-Fi, 무선 통신, 블루투스 등의 유비쿼터스 네트워크가 사물과 플랫폼, 단말기 등을 서로 연결하면 유비쿼터스 컴퓨팅 환경의 기초가 된다. 유비쿼터스 컴퓨팅을 실현하기 위한 핵심 기술 분야는 아래와 같다. ① 디바이스 기술 ② 네트워크 기술 ③ 센싱 기술 ④ 상황 인식 기술 ⑤ 상호 작용 기술 ⑥ 보안 기술 📕 2. 디바이스 기술 유비쿼터스 컴퓨팅 환경에서는 다양한 종류의 응용이 가능하다. 그 범위에는 단순히 ..

[유비쿼터스개론] 유비쿼터스 컴퓨팅 개념과 주요 이슈

📕 1. 유비쿼터스 컴퓨팅의 정의 인류 역사는 농경 사회, 산업 사회, 정보 사회를 거쳐 많은 발전을 거듭하여 왔으며, 사람들은 이에 만족하지 않고, 언제, 어디서나, 어떠한 통신 단말기를 가지고, 어느 통신망을 통해서든, 원하는 서비스를 받을 수 있는 '5Any'의 시대, 즉 유비쿼터스 사회를 추구하고 있다. 유비쿼터스(Ubiquitous)는 라틴어로 '도처에 존재하는', '편재하는'이라는 사전적 의미로 어디에나 존재한다는 의미이다. 유비쿼터스 컴퓨팅(Ubiquitous Computing) 개념은 1988년 PARC의 마크 와이저에 의해 '사람을 포함한 현실 공간에 존재하는 모든 대상물들을 기능적, 공간적으로 연결하여 사용자에게 필요한 정보나 서비스를 즉시 제공할 수 있는 기반 기술'로 정의되었다. 유..

[유비쿼터스개론] 유비쿼터스 혁명 3

📕 5. 유비쿼터스 공간의 공간 과학성 유비쿼터스 공간에서는 마크 와이저의 고요한 컴퓨팅(Calm Technology) 개념처럼 사람-사물-컴퓨터 간의 연계와 네트워크에 대한 접속 과정은 사람의 의도적인 개입이나 조작 없이도 가능하다. 최근에 전자 공간과 물리 공간을 연계해주는 기술이 많이 발달하고 있다. 유비쿼터스 컴퓨팅 및 네트워크 기술, 임베디드 시스템 기술, 웹 현실화(Web Presence 또는 Real Web) 기술, 정보 기술(IT), 나노 기술(NT), 생명 공학 기술(BT)이 결합된 칩, 센서, 무선 인식 태그(RFID tag), 미세 전자 기계 시스템(MEMS: Micro Electro Mechanical System) 기술 드으이 발달로 유비쿼터스 공간의 실현성과 과학성은 더욱 더 가..

[유비쿼터스개론] 유비쿼터스 혁명 2

📕 4. 유비쿼터스 공간의 특성 물리 공간과 전자 공간의 융합이 유비쿼터스 공간이라고 하였는데, 셋의 특성을 비교한 표를 봐보자. 구분 물리 공간 전자 공간 유비쿼터스 공간 공간 원소 원자 비트 원자+비트 공간 지각 만질 수 있는 공간 만질 수 없는 공간 만지지 않아도 인지할 수 있는 공간 공간 형식 유클리드 공간, 실제적 현실임 논리적 공간. 컴퓨터 상에서 가상적임 지능적 공간, 지적으로 증강된 현실임 공간 구성(소비 방식) 토지+사물(소유) 인터넷+웹(접속) 유비쿼터스 네트워크+지능화된 환경, 사물(u공간 거주) 공간 위상 주소/ 번지수 고정 IPv4 유무선 연계 IPv6 기능 형성 물리 공간에 사물이 심어짐 컴퓨터에 가상 사물이 심어짐 컴퓨터가 사물 속으로 침투됨 컴퓨터 활용 메인 프레임, 컴퓨팅 ..

[백준] 2179번: 비슷한 단어

정답 비율과 푼사람이 적었지만 문제 해결 알고리즘은 쉽게 생각나서 이 문제를 골랐지만 의외로 복잡했고, 코드가 지저분해졌었다. 그래서 다른 사람의 도움을 얻어보려 열심히 구글링을 해봤지만 맞힌 사람이 63명 밖에 없었고(2022.4.18기준) 파이썬으로 풀이를 적어둔 사람은 한명도 보지 못했다...ㅎㅎ 📘풀이 1. 입력된 단어들을 사전순으로 정렬한다. 이때 인덱스도 같이 저장해준다. 2. 정렬된 단어들을 한글자씩 비교해가면서 접두사의 길이가 최대인 경우를 찾는다. 3. 접두사의 길이가 최대이면서 가장 먼저 입력된 단어를 출력한다. 💻코드 n = int(input()) a = [input() for _ in range(n)] # n = 9 # a = ["noon", "is", "for","lunch","m..

[유비쿼터스개론] 유비쿼터스 혁명 1

📕 1. 개요 인류 문명을 공간혁명의 관점으로 볼 때 도시 혁명(Urban Revolution)과 산업 혁명(Industry Revolution)은 물리 공간(Physical Space)을 토대로 전개된 인류 문명의 가장 핵심적인 양대 혁명이다. 그후 20세기에는 인터넷 혁명(Internet Revolution)으로 전자 공간(Electronic Space)을 만들어냈고, 유비쿼터스 혁명(Ubiquitous Revolution)은 물리적 공간과 전자 공간을 유기적으로 통합한 유비쿼터스 공간(Ubiquitous Revolution)으로 진화를 가능하게하였다. 📖 1. 1 도시 혁명 도시 혁명은 인류학, 고고학 용어로 이전 자급자족의 농촌 생활에서 벗어나 서로 무리지어 대규모의 도시 사회를 이룬 것을 말한다..

[백준] 1010번: 다리 놓기

처음에는 단순히 itertoors에서 combinations를 import해서 사용했는데 예상했던대로 시간초과가 나왔다. (요즘 문제 푸는데 시간초과가 너무 많이 나와...ㅜ) 그래서! 조합을 combinations를 사용하는 것이 아니라 식을 factorial을 불러와서 조합의 경우의 수를 만들어 주었다. 📚 풀이 1. math 모듈을 가져와 factorial을 사용한다. 2. mCn 을 factorial을 사용해서 만든다면 => (m!/(m-n)!)/n! 3. 2번에서 사용한 식을 컴퓨터에서 실행하면 오차가 발생한다. (23 24 입력시 23.9999996이 나옴) 그래서 어차피 몫과 값이 다를리가 없기 때문에 /가 아닌 //를 사용해준다. 💻 코드 import sys, math input = sys..

[백준] 1924번: 2007년

월과 일이 주어졌을때 무슨요일인지 알아내는 프로그램이다. 처음부터 2007년이라는 연도가 주어졌기 때문에 조금은 쉽게 갔다. 만약 연도까지 입력값에 따랐다면 훨씬 더 복잡한 알고리즘으로 작성됐을 것이다. 📚 풀이 1. 입력받은 월(month)을 일로 변경하여 입력받은 일(date)과 더한다. 2. 더해진 일을 7로 나누어 나머지로 요일을 확인한다. 💻 코드 # PYTHON month, date = map(int, input().split()) # 매월의 마지막 일수 month_list = [31,28,31,30,31,30,31,31,30,31,30,31] day_list = ["MON","TUE","WED","THU","FRI","SAT","SUN"] days = 0 # 주어진 달의 이전달까지 모든 일을..

[파이썬] list, dict 주요 함수 시간복잡도

List Operation Example Big-O Notes Index a[i] O(1) Store a[i] = 0 O(1) Length len(i) O(1) Append a.append(5) O(1) Pop a.pop() O(1) a.pop(-1)과 동일 Clear a.clear() O(1) a = [] 과 유사 Slice a[a:b] O(b-a) a[:] : O(len(a)-0) = O(N) Extend a.extend(...) O(len(...)) 확장 길이에 따라 Construction list(...) O(len(...)) 요소 길이에 따라 check ==, != |1 == |2 O(N) 비교 Delete del a[i] O(N) Remove a.remove(...) O(N) Containme..

[파이썬] 순차탐색과 이진탐색

a = [1,2,3,4,5,6,7,8,9,10] a 리스트에서 내가 8이라는 값의 위치를 찾는 방법은 여러가지이다. 그중에서 순차탐색과 이진탐색을 설명하겠다. 순차탐색 (Sequential Search) 순차탐색은 그냥 말그대로 처음부터 이게 8인지 아닌지 확인해가면서 찾는 것이다. 즉 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법이다. 만약 찾고자하는 데이터가 제일 끝에 있다면, 데이터 개수가 N일 때 최대 N번의 비교 연산을 수행함으로 최악의 경우 시간 복잡도는 O(N) 이다. 이진탐색 (Binary Search) 이진탐색은 절반씩 쪼개가면서 찾는 것이다. 이때 a list가 정렬되어 있어야만 사용가능하다. 1~10 의 데이터 중 8의 위치를 찾으려면 ..