반응형

분류 전체보기 716

시간 복잡도와 빅 오 표기법 공부 - O(n), O(1), O(n^2), O(log n)에 대하여

계산 복잡도와 시간 복잡도: 어떤 알고리즘이 문제를 풀기 위해 해야하는 계산이 얼마나 복잡한지를 나타낸 정도를 '계산 복잡도'라고 한다. 계산 복잡도는 '시간 복잡도'와 '공간 복잡도'로 나눌 수 있다. 빅 오 표기법: 계산 복잡도를 표현하는 방법에는 여러가지가 있는데, 그 중 '빅 오 표기법'을 주로 사용한다. 이 글에선 시간복잡도와 빅 오 표기법을 공부할 예정이다. 알고리즘이 빠르다, 느리다는 시간으로 표현하지 않는다. 다시말해, 초, 분, 시간으로 표현하지 않는다는 말이다. 왜나하면 같은 알고리즘이라도 하드웨어의 차이로 인해 수행시간이 달라지기 때문이다. 문서 작업용 노트북의 처리속도와 게이밍 컴퓨터의 처리속도가 같을 수는 없다. 따라서 알고리즘의 스피드는 곧 '알고리즘이 완료까지 걸리는 절차의 수..

모두의 알고리즘 - 문제 01. 1부터 n까지의 합 구하기 연습문제

def sum_mul(n): sum=0 for i in range(1, n+1): sum=sum+(i**2) # 거듭제곱은 ^ 기호가 아니라 ** 기호더라 return sum print(sum_mul(10)) def sum_mul2(n): return n*(n+1)*(2*n+1)//6 print(sum_mul2(10)) 1-1. 1부터 n까지 연속한 숫자의 제곱의 합을 구하는 프로그램을 for문으로 만들기 배운걸 응용하기만 하면 됐고 거듭제곱 기호가 C와는 다르게 ' ^ '가 아니라 ' ** '인 것을 알게 되었다. 1-2. 연습문제 1-1의 시간복잡도는 O(1)인가 O(n)인가? O(n). 입력값n과 계산 횟수(거듭제곱 한 번, 덧셈 한 번)가 정비례하여 증가하기 때문에 O(n)이다. 1-3. 1부터 ..

모두의 알고리즘 - 문제 01. 1부터 n까지의 합 구하기, 시간 복잡도 개념

def sum_n(n): s=0 for i in range (1, n+1): # 1 이상 n+1 미만 s=s+i return s print(sum_n(10)) print(sum_n(100)) def sum_n2(n): return n*(n+1)//2 # /는 소숫점 나오는 나눗셈, //은 정수 나눗셈 print(sum_n2(10)) print(sum_n2(100)) 첫 번째 방법은 흔히 프로그래밍을 처음 입문하는 사람들이 배우는 방법인데 이는 숫자가 1 늘어나면 계산 횟수가 1회 늘어나는 방식이다. 즉 1000을 입력하면 1000번 더해야한다. 0 + 1 + 2 + 3 + 4 + 5 -> 5를 입력하면 5번 더하게 된다. 두 번째 방법은 가우스가 만들었다 알려진 공식을 이용하는 방법이다. 이 공식을 이용..

[웹소설 리뷰] 높은 하늘의 한국인 - 화려한 공중전이 매력있는 소설

오늘은 '높은 하늘의 한국인'이라는 웹소설을 리뷰하려 한다. 소설 초반부는 2차대전 시기에 미국이 진주만 폭격을 당하고 해군 병력이 박살났을 무렵에 주인공이 전투기 파일럿으로 모함에 오르는 내용으로 시작한다. 그 후 주인공이 부족한 여건에서 일본군과 공중전을 치르는 것으로 본격적으로 이야기가 시작된다. 소설의 메인은 당연히 전투기들의 공중전인데 이게 화려하고 실감나서 저절로 몰입이 되었다. 다만 전투씬을 읽을 때 불편한 점이 있다면 전투기들이 어떻게 움직이는지에 대한 설명이 불충분하여 직접 찾아봐야했다. 예를 들어 코브라 기동을 했다고 해서 그걸 찾아본다던가. 소설을 보다보니 어쩔 수 없이 각종 전투기 기동들을 찾아봤는데 글로 표현하려 해도 독자가 이해 못할 거 같아서 그냥 안한 거 같기도 하더라. 하지..

프로그램 공모전에서 고려해야할 것들 정리

전에 한전KDN 공모전 본선에 나갔을 때 내 팀이나 다른 팀들이 평가받는 것을 보면서 공모전에서 고려해야할 점을 몇가지 알게 됐는데 여기에 한번 정리해본다. 1. 개발할 것은 철저한 검증을 거친 후에 선정하라. 어느 팀은 서버실에 화재가 난다면 즉시 알 수 있는 작품을 들고 갔는데 반응이 좋지 않았다. 심사위원님은 "이건 필요 없다.", "서버실에 한번이라도 견학을 해봤다면 이걸 만들었을 리가 없다." 등의 혹평을 내뱉었다. 이미 있는 것, 필요 없는 것은 만들어 가도 좋은 소리는 듣지 못하고 특히 본인이 선정한 주제에 대해 상술한 상황처럼 제대로 조사하지 않은 게 확연히 드러나면 혹평을 받게 된다. 우리 팀도 프로그램을 기껏 만들어 갔는데 이미 사용중인 프로그램이라는 소리를 들었다. 분명 사전에 검색을..

웹소설 리뷰할 때 소설 내용 언급을 너무 꺼려선 안되는 것 같다

웹소설 리뷰할 때 느낀 건데 너무 스포를 안하려고 내용을 집어넣지 않으면 리뷰가 너무 단조로워지더라. "이 점은 재밌고 이 점이 특히 좋았는데 이건 좀 아쉬웠다." 이런 식으로 진행이 되어야하는데 생각해보면 전에 쓴 리뷰 몇 편들은 스포를 경계해 내용 언급을 많이 줄여서 리뷰가 단조로워진 감이 있는 것 같다. 앞으로는 좀 주의해야겠다.

일상/잡담 2022.05.03

대체역사물이 재밌는 이유

요새 대체역사물(이하 대역물)을 주로 읽고 있어서 왜 대역물이 재미있게 느껴질까 이유를 몇가지 생각해봤다. 1. 작가가 주인공이 활약하기 좋은 시기, 좋은 장소에 주인공을 집어넣는데 이렇게 재미가 검증된 시대적 배경을 기본적으로 소설 배경으로 깔고 들어간다. 2. 매력있는 역사 속 인물들을 그대로 활용 가능하다. 예를 들면 '얘 사전에 불가능은 없다!'의 닥돌 기병대장 조아킴 뮈라, '몽골 황가의 망나니'의 독살 황후 투르게네 등 역사 속 매력 넘치고 입체적인 인물들을 그대로 가져다 사용할 수 있어서 등장인물 조형에 유리하다. 3. 주인공 설정 짜기도 편하다. 대체역사 소설은 거의 역사 패러디물이라 해도 될 정도인데, 대역물도 패러디물처럼 작중 배경으로 정한 곳에 주인공 하나를 끼워넣거나 역사속 인물을 ..

일상/잡담 2022.05.03

[웹소설 리뷰, 추천] 네 법대로 해라 - 시간 가는 줄 모르고 보게 되더라

오늘은 '네 법대로 해라'라는 웹소설을 리뷰하려 한다. '네 법대로 해라'는 '재벌집 막내아들'로 유명한 산경 작가의 작품이다. 간단히 요약하면 열혈 검사 주인공이 정의 구현을 위해 노력하는 내용이다. 이 소설은 정말 한 편의 영화나 드라마를 보는 듯한 느낌이었다. 작가의 꼼꼼한 자료조사가 엿보이는 고증과 그로 인해 느껴지는 실감과 몰입이 엄청났다. 보면서 감탄했고 자세한 고증에서 우러나는 실감나는 스토리가 참 예술이었다고 생각한다. 물론 내 개인적인 취향에 딱 들어맞은 것이기에 어느정도 걸러 들을 필요는 있다. 소설 초반부는 법과 재판에 대한 일반인과 법조인의 차이를 돋보이게 썼는데 이게 특색 있고 흥미로운 소재라서 초반부터 빠져들었다. 변호사의 가장 어려운 일이 바로 의뢰인이 조금은 손해 보도록 설득..

한국사능력검정시험 1급 취득한 2주 공부 방법, 후기

저번에 한능검 시험을 쳐서 1급을 취득했다. 개인적으로 생각하기에는 중학생 수준의 한국사 지식이 기반에 있으면 한달간 하루 한두시간만 투자하면 충분히 취득할 수 있다고 생각한다. 나는 공부를 미루다가 시험까지 2주정도 남았을 때 하루 두세시간정도 투자해 1급을 취득했다. 한국사 지식은 상술한 것처럼 중학생 때 배운 한국사가 전부다. 애초에 고등학교 모의고사는 중학생 때 한국사를 배웠으면 고등학생 때 한국사를 따로 공부하지 않고 3년을 보내도 수능까지 쭉 1등급을 맞을 수 있기에 고등학생 때 한국사 공부를 하지 않았다. 공부방법을 정리해보자면 무작정 업적 외우기 X 역사의 흐름을 이해하고 인물이 왜 이런 일을 했는지 이해하기. 예를 들면, 고려 초기에 왕이 자주 바뀌는데 왜 그럴까? 이유는 간단히 두 가지..

[웹소설 리뷰] 얘 사전에 불가능은 없다! - 마무리가 많이 아쉬운 작품

오늘은 대체역사물인 '얘 사전에 불가능은 없다!'를 리뷰해보려 한다. '얘 사전에 불가능은 없다!'는 현대에서 프랑스 혁명기로 온 주인공이 당시 역사를 주도하던 나폴레옹과 사관학교의 동기가 되며 시작한다. 나폴레옹이 성공할 것을 알고 있는 주인공은 나폴레옹의 가족들이 가난에 허덕일 때 후원해주고 나폴레옹과 친하게 지내며 인생 날먹을 꿈꾼다. 일단 이 소설의 단점부터 말해보자면, 작가가 급하게 완결내면서 잘 진행되던 소설이 망가져버렸다. 소설 후반부의 전쟁이 끝나고 갑자기 시간을 몇십년 넘기더니 그대로 완결내버리고 현재는 완결 이후 시점을 외전으로 계속 연재중이다. 그리고 그 몇십년동안 주인공은 은거만 하면서 지냈다더라. 아마 작가가 뿌려둔 떡밥들을 회수하는게 감당이 안되서 넘겨버린 것 같은데 그러면서 문..

반응형