We will find a way, we always have.

-interstellar

분류 전체보기 288

[유비쿼터스개론] 유비쿼터스 혁명 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의 위치를 찾으려면 ..

[파이썬] 리스트에서 원하는 값 제거하기 중복 제거가능

a = [1,2,3,4,4,4,5] 위에 a 리스트에서 4를 지우고 싶다. 물론 a.remove(4)를 하면 되지만 그럴 경우 4 하나만 지워지고 두개의 4가 아직 남아있다. 이럴때 해결방법!! a = [1,2,3,4,4,4,5,5,6] remove_set = {4,6} result = [i for i in a if not in remove_set] print(a) >> [1,2,3,5,5] remove_set 이라는 set을 만들어준다음 a가 remove_set에 포함되어 있다면 result에 담지 않는 것이다!

[백준] 1359번: 복권

처음에 제목보고 재밌을거 같아서 시도해본 문제이다. 그러나 해결 알고리즘을 찾지 못해서 잠시 묵혀두었다가 스터디 시작하면서 다시 손을 대본 문제! 조합을 사용하여 시도했고 도중에 튜플을 리스트로 바꾸지 못해서 헤매었다.ㅎㅎ 해결 알고리즘: 나와 상대방이 뽑은 자연수를 같은 list에 담고 그 list를 set로 변경해줄때 변하는 길이의 변화를 갖고 풀었다.