전체 47

올더스 헉슬리 - 멋진 신세계

버나드 마르크스라는 등장인물의 이름에 기대를 걸었다. 레니나를 둘러싼 포스터와 버나드 간의 갈등을 겪으며, 버나드가 각성하고 세계를 뒤흔드는 내용을 기대했다. 그럴 줄 알았는데, 뜬금없이 존이라는 인물이 나타나서 이 세계에 환멸을 느끼고 있는게 아닌가? 사실 내가 기대했던 그림으로 전개가 되었어도, 딱히 마음에 들지는 않았을 것이다. 버나드라는 자체도 사실은 고위층으로 타고난 인물이다. 그런 내용이라 하면, 무산계급이 유산계급을 상대로 반기를 든다는 클리셰를 따르는 편이 더 재밌었을 것이다. 그냥 조금 삐딱하고 불만많은 특권층이 투정부리는 내용 정도로 그쳤을 것이다. 아무런 고민없이 마음편히 살 수 있는 세상은, 그 수단이 설령 소설과 같이 세뇌와 마약이 아니라 하더라도 그다지 매력적이진 않다. 매일 밤..

일상/독서 2022.05.31

BOJ 2559번 - 수열

더보기 문제 매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다. 예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3 모든 연속적인 이틀간의 온도의 합은 아래와 같다. 이때, 온도의 합이 가장 큰 값은 21이다. 또 다른 예로 위와 같은 온도가 주어졌을 때, 모든 연속적인 5일 간의 온도의 합은 아래와 같으며, 이때, 온도의 합이 가장 큰 값은 31이다. 매일 측정한 온도가 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진..

[독서] 요즘 읽는 책, 그리고 읽을 책

본디 나는 사회복지학을 전공했던 사람으로서, 사회복지라 하면 인본주의에 근간을 둔 응용학문이자 사회과학이니, 내가 배운 것은 사람에 대하여 생각하고 탐구하며 행동하는 것이었다. 허나 사회복지학 외에도 전공했던 것이 있느니, 빅데이터 분석학으로 요즘에는 이 분야를 계속해서 공부하다보니 자연스레 모든 생각이 수치적인 것으로 흘러들어가게 되었다. 하지만 숫자를 본다는 것도 결국 인간 세상의 일을 보다 명료하게 해석하기 위함인 것인데, 어쩐지 요즘 숫자에만 매몰되어 본질을 망각하고 사는 것이 아닌가 싶었다. 이러한 뜻에, 과거 예전 한창 문학소년이던 시절의 감성을 끌어와 남는 시간 틈틈이 독서에 매진하고 있다. 요 근래에 읽었던 책들은 다음과 같다. 1. 용문집 가장 최근에 읽은 시집으로, 내 직계 16대조 할..

일상/독서 2022.05.29

BOJ 1931번 -회의실 배정

그리디 알고리즘 문제를 풀기 위해서는, 최적의 해결 방법을 찾아야 한다. 최적의 풀이 방법을 생각해내지 못하고, 완전탐색으로 억지로 풀고자 한다면 시간 초과가 날 수밖에 없다. 최초에 이 문제를 풀면서도, 단순 정렬만을 하고 완전탐색으로 풀었다가 시간초과의 덫을 빠져나올 수 없었다. 하지만 이내 좋은 방법을 찾아내어, 시간 초과 문제를 해결할 수 있었다. import sys input = sys.stdin.readline lst = [] for _ in range(int(input())): lst.append(list(map(int,input().split()))) lst.sort(key=lambda x : (x[0],x[1])) time = [] for i in range(len(lst)): res =..

구간 합

알고리즘 공부를 공부할때마다 느끼는 것이 있다. 알고리즘 공부는 비단 프로그래밍 실력만을 상승시킬뿐만 아니라, 공부하는 사람의 사고까지도 효율적으로 흘러갈 수 있도록 변화시킨다는 것이다. 구간합이란, 연속으로 나열된 N개의 수가 있을 때, 특정 구간의 모든 수를 합한 값을 구하는 것을 의미한다. 배열 [10, 20, 30, 40, 50]이 있다고 하면, 두 번째 수부터 네 번째 수까지의 합은 20 + 30 + 40으로 90이 될 것이다. 보통 구간합 문제가 나오면, 여러 개(M개)의 쿼리를 주고 해결하라는 형식으로 출제된다. 만약, 이 방법을 숫자가 주어질때마다 해당 배열의 수를 뒤져가며 매번 더하게 된다면 시간 복잡도는 O(NM)이 될 것이다. 그런데, 접두사 합(prefix sum)이란 방식을 사용한..

멀티캠퍼스 데이터 사이언스/엔지니어링 50% 수료

삼성 멀티캠퍼스 데이터 사이언스/엔지니어링 과정을 수강한지 어느덧 두 달 하고 보름이 지났다. 마음 한 켠에는 '벌써 50%나 지났어?' 하는 생각이, 다른 한 켠에는 '이제 50%가 지났어?' 하는 생각이 든다. 파이썬, 판다스, 장고, 머신러닝, 딥러닝 등, 정규 강의는 모두 끝났고 한 차례의 프로젝트도 끝났으며 이제 두개의 프로젝트만이 남았다. 그동안 나는 무엇을 배웠으며, 얼마나 성장했으며, 어떠한 일들을 겪었으며, 그리고 앞으로는 어떻게 해야할까. 지난 2개월 간 무엇을 배웠나? 파이썬, 판다스, 각종 시각화 기법, SQL, 장고, 크롤링, 머신러닝, 딥러닝을 배웠다. 대학교 학부 수준에서 수업을 들었다면, 각 과목마다 한 학기에 거쳐 배우는 내용, 혹은 중간고사 이전까지 배웠을 내용들을 저 짧..

Binary search, 이진 탐색

이진 탐색에 대해 공부하였다. 파이썬의 리스트 자료구조에서, for문을 통해 첫번째 인덱스부터 마지막 인덱스까지 순차적으로 탐색을 하였다가는 시간 복잡도 문제를 문제를 벗어날 수 없게 된다. 이러한 문제를 해결하기 위하여, 이진 탐색 아이디어를 활용할 수 있다. 이진 탐색 이진 탐색이란, 리스트를 절반으로 쪼개어 탐색하는 과정이다. 0 1 2 3 4 5 6 7 8 9 라는 리스트가 있다고 할 때에, 찾고자 하는 수가 0~4와 5~9 중 어디에 있는 지를 파악하고, 만약 전자의 범위 내에 있다면 전자의 범위에서, 그 반대라면 후자의 범위 내에서 탐색하는 방법이다. 이러한 이진 탐색을 구현하는 방법은 두 가지 방법이 있는데, 하나는 재귀 함수를 이용하는 방법이고, 다른 하나는 반복문을 사용하는 방법이 있다...

BOJ 16173번 - 점프왕 쩰리

BFS와 DFS에 대하여 공부하고 있다. 그 중 BFS란, 너비 우선 탐색을 의미한다. 가까운 노드들부터 우선적으로 탐색한다는 것이다. 이에 해당 개념을 잡기 위해, 수 차례 의미를 생각하며 코드를 쳐보았지만 아직 부족함을 느꼈다. 이에 BFS 개념을 적용해보고자, 백준 OJ에서 다음과 같은 문제를 찾아 풀어보았다. 문제 ‘쩰리’는 점프하는 것을 좋아하는 젤리다. 단순히 점프하는 것에 지루함을 느낀 ‘쩰리’는 새로운 점프 게임을 해보고 싶어 한다. 새로운 점프 게임의 조건은 다음과 같다.‘쩰리’는 가로와 세로의 칸 수가 같은 정사각형의 구역 내부에서만 움직일 수 있다. ‘쩰리’가 정사각형 구역의 외부로 나가는 경우엔 바닥으로 떨어져 즉시 게임에서 패배하게 된다.‘쩰리’의 출발점은 항상 정사각형의 가장 왼..

DFS와 BFS

DFS와 BFS 코딩테스트를 준비하는 사람이라면, 누구나 반드시 공부해야하는 알고리즘 중 하나라고 한다. 나 또한 공부해야지, 공부해야지, 했지만, 이런 저런 이유를 핑계로 미뤄 두다가 이제야 다시 시작해본다. DFS 깊이 우선 탐색이라고 부르며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. 스택 자료구조를 이용한다. 하지만, 구현 상의 한계가 있어 스택 자료구조를 직접 이용하기 보다는 재귀 함수를 사용하여 구현한다. def dfs(graph, v, visited): # 현재 노드를 방문 처리 visited[v] = True print(v, end=' ') # 현재 노드와 연결된 다른 노드를 재귀적으로 방문 for i in graph[v]: if not visited[i]: dfs(graph..

멀티캠퍼스 데이터 사이언스/엔지니어링 첫 프로젝트

멀티캠퍼스 데이터 사이언스/엔지니어링 첫 프로젝트 지난 4월 26일부터 오늘 5월 10일까지, 삼성 멀티캠퍼스 데이터 사이언스/엔지니어링 수업 간에 진행된 첫 프로젝트를 진행하였습니다. 저는 조장으로서 팀을 이끌었고, 주로 시각화와 관련된 부분을 담당하였습니다. 결과는 우수상, 전체 아홉개의 조 중에서 2등이었습니다. 하지만, 그 결과를 듣고 웃어야할 지 슬퍼해야할 지 고민했습니다. 왜 웃어야할 지 고민했을까요. 그것은 모든 조가 너무나도 잘했기 때문이었습니다. 모든 사람들이 각자의 다양한 주제의식을 통해 의미있는 결론들을 추출해내었는데, 그 사이에서 과연 제가 이끌었던 그 조가 과연 2위 안에나 들 수 있을 지를 걱정하였습니다. 그렇다면, 2등이나 했으면 됐지 왜 슬퍼해야 할 지 고민했을까요. 1등을 ..