오늘 한 일

  • 스터디에서 알고리즘 마라톤 문제 4개를 풀었다. 이제 스트레스 받지 않고, 모르는 건 적당히 찾아가며 공부하기로 했다. 복습이 필요하다면 다시 풀어보면 그만이다.

 

	round(n)				# n을 소수점 첫째 자리에서 반올림



	from collections import Counter

	Counter(iterable).most_common()		# 원소를 최빈값 순서로 튜플 형태로 나열



	max(iterable), min(iterable)		# 원소의 최댓값, 최솟값 구하기

 

  • 주특기 선택을 앞두고 튜터님과 5:1 면담을 가졌다. 면담 전에 사전 회고를 제출했었는데, 사실 내 최대 고민이었던 '주특기 선택' 자체는 사전 회고를 작성하기 직전에 해결된 것이나 마찬가지였어서 딱히 쓸 내용이 없었다. 어떻게 주특기 선택에 대한 결정을 굳혔는지를 나열했을 뿐이다. 다른 분들이 질문을 다양하게 해주셔서 나도 많이 얻어 들었다. 알고리즘은 해답을 보면서 풀어보기(대신 해답을 보기 전에 스스로 도전하고, 도전에 필요한 적절한 시간을 찾아 스스로 정하기), 오류는 해결하면 되므로 오류 내는 것을 두려워하지 말기, 코딩에 노베이스인 경우 베이스를 쌓아감과 동시에 베이스가 있는 다른 사람들의 코드를 리뷰하고 벤치마킹하기, 좋아하는 회사를 찾기가 어렵다면 팀블로그를 검색해 보고 내용이 마음에 드는 곳을 골라보기, 과한 검색에 매몰된다면 얕은 검색 시도해보기(링크 속에서 다른 링크 타고 들어가기 금지).
  • <점프 투 파이썬> 1장 전체, 2장 조금을 봤다. 기본서라 전체적으로 빨리빨리 읽어나갈 수 있었지만, 내가 몰랐던 내용들도 꽤 있었다. 구매를 서둘러서 다행이다.

내일 할 일

  • 알고리즘 마라톤 문제 4개 풀기
  • <점프 투 파이썬> 2장 마저 보기
  • 알고리즘 마라톤에서 고전하고 있는 문제 1개 풀기

'항해99 > 02_알고리즘(Day5~18)' 카테고리의 다른 글

항해02_알고리즘(Day13)  (0) 2021.06.20
항해02_알고리즘(Day11)  (0) 2021.06.18
항해02_알고리즘(Day10)  (0) 2021.06.17

오늘 한 일

  • 스터디에서 알고리즘 마라톤 문제를 3개 풀었다(이미 풀었던 문제 다시 푼 건 제외). 오늘은 이항계수가 속을 썩였다. 분명 고등학교 수학 시간에 배웠는데, 여전히 눈에 잘 안 들어온다. 나의 짧은 지식으로 이걸 모듈 없이 구현해 보려니 속이 너무너무 썩었는데, 파이썬 math 모듈의 factorial()을 사용하면 아주 간단하게 풀어 해치울 수 있었다.

 

  • 내일과 모레 중 하루에 진행할 주특기 관련 면담 일정을 잡았다. 한 타임에 자리가 5개인데, 우리 스터디원 3명은 신청 링크가 열리자마자 신속하게 같은 날 같은 시간 자리를 잡았다. 이왕 얘기 나누는 자리인 거, 아는 사람 있으면 좀 더 편하게 말이 나오겠지 싶다.
  • 오후 3시에 유능한 크루원 분의 알고리즘 발표를 들었다. 사실 그 문제는 나와 우리 스터디가 오랜 시간 고전하고 있던 거라 문제 해설 위주일 줄 알고 갔는데, 에러 처리 방법이 주 내용이었다. 비록 문제 해설을 듣고도 그 문제를 속 시원히 풀지는 못했지만, 그때 들었던 에러 처리 방법을 활용해 다른 문제를 풀 수 있어서 대만족이다.
  • 오후 8시에 진행된 Spring 주특기 Q&A에 참여했다. 그러고 나서 React를 주특기로 삼아야겠다는 결정을 내렸다. 아무래도 백엔드 관련 얘기에는 별로 흥미가 느껴지지 않았다. 본의 아니게 결국 우리 스터디원 3명 모두 프론트엔드로 가게 된 것 같다.
  • 스터디에서 푼 문제가 3개밖에 되지 않아, 나의 마음속 기준인 하루 4개를 충족하지 못했다. 그래서 자정에 스터디를 해산한 후, 혼자서 문제 3개를 더 풀어봤다. 스트레스 받고 싶지 않아 적절히 힌트 찾아가며 풀었는데, 오늘 하루 알고리즘 때문에 내내 우울했던 기분이 '맞았습니다!!' 문구를 볼 때마다 싹 풀렸다.

내일 할 일

  • 스터디에서 알고리즘 마라톤 문제를 4개 푼다. 개수는 같이 정하지 않았고, 이건 어디까지나 내 기준이다.
  • 내일 있을 주특기 면담에 시간 맞춰 참여한다.
  • 오늘은 알고리즘 우울증으로 펴 보지도 않았던 <점프 투 파이썬>, 1장 꼭 보기!

'항해99 > 02_알고리즘(Day5~18)' 카테고리의 다른 글

항해02_알고리즘(Day12)  (0) 2021.06.19
항해02_알고리즘(Day10)  (0) 2021.06.17
항해02_알고리즘(Day9)  (0) 2021.06.16

오늘 한 일

  • 스터디에서 알고리즘 마라톤 문제를 6개 더 풀었다!(이미 풀어놨던 문제 2개 제외하고)
  • 오후 8시부터는 node.js에 대한 Q&A에 참여했다. 다른 분들과 달리 나는 node.js에 대한 관심이 있어서라기보다는, 아는 게 별로 없으니 귀동냥이라도 하면 좋지 않을까 해서 들어갔다. 저번 react 때는 설명을 듣고 나서 어려울 것처럼 느껴졌지만 그래도 흥미가 일었는데, 이번에는 그저 먼 얘기로만 들렸다. 백엔드는 아무래도 아닌 걸까?
  • BOJ 1964번 최소공배수를 구하는 데 유클리드 호제법...을 알게 되어서 매우 기뻤...다...... 후....^^....유클리드 호제법을 안 쓰고 식으로 구현해 풀려니 채점 중에 자꾸 시간 초과가 걸려버렸다.

 

                                 < 유클리드 호제법에 따라 두 자연수 a, b의 최대공약수를 구하는 방법 >
        a % b = r  →  b % (a % b) = r'  ->  (a % b) % {b % (a % b)} = r'''  ->  ...  ->  b가 0이 되면 그때의 a가 최소공약수
        이 말인즉슨, n+1번째 식으로 넘어갈 때마다 a에는 n번째 식의 b를, b에는 n번째 식 자체를 대입해야 한다는 것
        파이썬 while 문으로 b == 0 일 때까지 반복하면 딱이다

 

내일 할 일

  • 내일도 스터디에서 알고리즘 마라톤 문제를 6개 푼다. 스터디와 함께라면 두렵지 않아!
  • 쉬어가는 느낌으로 기본부터 다시 익히기 위해 <점프 투 파이썬> 1장을 본다.

'항해99 > 02_알고리즘(Day5~18)' 카테고리의 다른 글

항해02_알고리즘(Day11)  (0) 2021.06.18
항해02_알고리즘(Day9)  (0) 2021.06.16
항해02_알고리즘(Day8)  (0) 2021.06.15

오늘 한 일

  • 알고리즘 마라톤 문제를 4개 풀었다. 뒤로 갈수록 난이도가 높아져서 그런 건지 문제 푸는 속도가 점점 느려진다. 틀리는 횟수도 많아진다. 그래도 4개 채워서 너무 다행이다. 잘했다(셀프칭찬)!!!
  • 알고리즘 스터디를 모집하길래 급 지원했는데, 지원 안 했으면 두고두고두고두고두고 후회할 뻔했다. 항해99 와서 가장 잘한 일인 것 같다. 개인적인 이야기들도 했고 함께 머리를 맞대고 안 풀리는 문제에 대한 고민을 하나하나 나눠봤는데, 역시 사람 생각하는 건 다 거기서 거기...XD 이 스터디는 건강에 유익한 게 분명하다.
  • 스터디에서 알고리즘 마라톤 문제를 2개 더 풀었다! 물론 답안 코드를 보고 나서 '왜 이렇게 쉽게 풀려....?' 했지만, 아무튼 답을 찾아내기 위해서 우리끼리 고민해보고 얘기하는 시간이 유익했다. BOJ 4948번 베르트랑 공준 문제는 함께 푸는 데 3시간도 넘게 걸렸다. 이것도 답안지를 보고 푼 거지만 정말로 뿌듯하다!

내일 할 일 

  • 알고리즘 스터디에서 알고리즘 마라톤 문제 5번, 18번, 14번, 6번, 17번을 함께 푼다.
  • 시간이 남는다면, 문제를 1개만 혼자 더 풀어본다. (과연...?)

'항해99 > 02_알고리즘(Day5~18)' 카테고리의 다른 글

항해02_알고리즘(Day10)  (0) 2021.06.17
항해02_알고리즘(Day8)  (0) 2021.06.15
항해02_알고리즘(Day7)  (0) 2021.06.14

오늘 한 일

  • 주어진 알고리즘 문제를 앞에서부터 순서대로 7개 풀었다! 하루에 딱 평균치인 4개만이라도 풀자, 했었는데 생각보다 술술 풀려서 기분이 너무 좋았다. 나는 어쩔 수 없는 알알못이라고 생각했는데 그 정도는 아니었나...(❁´◡`❁) 희망이 보인다, 보여!
  • <Do it! 알고리즘 입문> 3장 '검색 알고리즘'을 봤다. 아직 모든 내용을 완벽하게 이해하지는 못하지만, 그래도 눈이 많이 적응한 것 같다. 내 집중력이 자주 고갈되고 예시 코드들을 따라 쳐 보느라 그랬지, 한 장을 다 읽는 데 시간 자체가 오래 걸리지는 않았다.
  • '알고리즘을 대하는 우리의 자세' 특강을 들었다. 코딩테스트 플랫폼 이용하기, 입문자 수준에서는 한 문제를 붙잡고 고민하는 것은 최대 20분까지만 잡기, 문제는 노트에 쓰면서 풀기, 다양하게 많이 풀기, 어차피 나중에는 혼자서 풀어 나가는 능력을 길러야 하니 지금 단계에서는 모르면 구글링이나 질문을 통해 도움 받기, 아직은 복잡도를 고민하기보다는 구현을 하는 데 더 신경쓰기.
  • BOJ 단계별 문제를 20개 풀었다. 하면 는다는 게 이런 건지, 어제보다 확실히 코드를 짜는 게 수월해졌다. 간단한 문제에서조차 버벅였던 어제였다면 생각하지 못했을 코드를 오늘은 보다 편하게 구성해 나갈 수 있었다.

내일 할 일

  • 오늘보다 난이도가 조금 더 있을 테니 걱정되기는 하는데, 알고리즘 문제는 4개 꼭 풀자.
  • <Do it! 알고리즘 입문> 4장 '스택과 큐'를 본다.
  • BOJ 단계별 문제 10개 풀기.
  • TIL 쓰기. 이제 이건 몸에 좀 익은 것 같다. 앞으로는 굳이 '내일 할 일'에 적지 않아도 되겠다.

'항해99 > 02_알고리즘(Day5~18)' 카테고리의 다른 글

항해02_알고리즘(Day9)  (0) 2021.06.16
항해02_알고리즘(Day7)  (0) 2021.06.14
항해02_알고리즘(Day6)  (0) 2021.06.13

오늘 한 일

  • <Do it! 알고리즘 입문> 2장 '기본 자료구조와 배열'을 봤다. 어제 작성한 TIL에서 너무나 높은 목표선을 설정해서 성취감이 참 떨어진다.. 하지만 배운 건 많다. 예를 들면 아래와 같은... 이 기본적인 걸 몰라서 코드 짤 때마다 얼마나 고생했던지.
    list('ABC')				# ['A', 'B', 'C']
    list({'name': 'Ann', 'age': '25'}) 	# ['name', 'age']
    if __name__ == '__main__':	# 해당 프로그램을 직접 시작한 경우에만 참, 
    				# 다른 스크립트 프로그램에서 임포트한 경우에는 거짓이 됨 
    				# 따라서 임포트한 경우 이 if문의 suite는 실행되지 않음​
  • 당장 알고리즘 문제를 풀 수 있어야 하는데 이 두꺼운 교재만 잡고 이론만 익히는 게 과연 효율적일까 싶어서 백준(BOJ)에서 단계별 문제를 21개 풀어봤다. 틀리면 맞을 때까지 풀었는데, 의외로 쉬운 문제들에서도 대목마다 고려해 줘야 하는 조건들이 있어 허무하게 틀리는 경우가 다반사였다. 예를 들면 input()으로 들어오는 값은 일단 무조건 문자열이다. 그래서 숫자로서의 입력값이 필요하다면 int()로 바꿔줘야 한다.
  • 그리고 오늘도 이렇게 TIL을 작성했다(뿌듯) 제출해야 하는 건 WIL이긴 했지만 일관되게 밀고 나가기(?) 위해서 어제까지의 TIL을 제출했다.

내일 할 일

  • 게더에서 제공되는 알고리즘 문제 4개를 푼다.
  • <Do it! 알고리즘 입문> 3장 '검색 알고리즘'을 공부한다. 이제부터는 목표를 설정하는 데 있어 욕심을 내지 말자^^제발...
  • BOJ 단계별 문제 10개만 더 풀자.

 

'항해99 > 02_알고리즘(Day5~18)' 카테고리의 다른 글

항해02_알고리즘(Day8)  (0) 2021.06.15
항해02_알고리즘(Day6)  (0) 2021.06.13
항해02_알고리즘(Day5)  (0) 2021.06.12

오늘 한 일

  • 문풀 위주인 5주차는 제외하고 알고리즘 강의를 4주차까지 들었다. 이해 여부와 상관없이 듣기로 했으니 목표는 완수한 셈이다. 나 같은 왕초보에게는 그저 어려울 따름이라서 개념에 익숙해지는 데 중점을 뒀다. 배열(array), 링크드 리스트(linked list), 재귀함수(recursion),  분할 정복(divide and conquer), 생성자(constructor), 스택(stack), 큐(queue), 해쉬(hash?hashing?), BFS(Breadth First Search), DFS(Depth First Search), 힙(Heap), 동적계획법(Dynamic Programming) 등등...
  • <Do it! 자료구조와 함께 배우는 알고리즘 입문 파이썬 편> 공부를 시작했고, 1장 '알고리즘 기초'까지 봤다. 반복되는 실습 코드, 부가 설명, 그림들을 보다 보니 알고리즘의 모양새(?)에 조금이나마 적응해 가는 것 같다. 기초적인 수준이나마 파이썬을 다루면서도 어느 대목에서 왜 사용하는 건지 어렴풋이만 알았던, 말 그대로 '기본' 개념들을 여기서 한 번씩 짚고 넘어가게 되어 무릎을 탁 치게 된 대목도 많았다. 그럴 때마다 그때 그때 구글링하는 것만으로는 채워지지 않던 갈증을 해소하는 기분이 들었다.

내일 할 일

  • 공식적으로는 휴식을 취하는 일요일이지만, 평소와 같이 오전 9시까지 일과를 시작할 준비를 마친다.
  • 오전 중에 <Do it! 알고리즘 입문> 2장 '기본 자료구조와 배열'을 마친다.
  • 점심 이후에 3장 '검색 알고리즘', 4장 '스택과 큐'를 공부한다.
  • TIL과 WIL을 적고, WIL 링크를 제출한다.
  • 시간과 마음의 여유가 허락한다면, 기초적인 알고리즘 문제를 1개 풀어본다.

'항해99 > 02_알고리즘(Day5~18)' 카테고리의 다른 글

항해02_알고리즘(Day8)  (0) 2021.06.15
항해02_알고리즘(Day7)  (0) 2021.06.14
항해02_알고리즘(Day5)  (0) 2021.06.12

오늘 한 일

  • 어제 제출한 미니 프로젝트 'MOVIE TALK(무비톡)'에 대한 그룹별, 개인별 회고의 시간을 가졌다. EC2 업로드에 문제가 생겨 제출 기한을 넘긴 게 가장 아쉬웠고, 그밖에는 좀 더 세련된 디자인을 고려하지 못한 점, 폰트 같은 것들의 통일성이 부족했던 점 등 주로 CSS 쪽이 부족하다고 평가했다. 처음이라 미비한 점은 있었다 해도 어쨌든 잠 줄여서 컴퓨터 앞에 잘 붙어 있으니 뭐라도 되는구나 싶었다. 밤새고 따가운 눈 문질러 가면서 해도 코딩은 즐거웠다.
  • TIL 작성의 중요성에 대해 알게 되었다. 그 덕에 지금 키보드를 두드리고 있다. 하마터면 새까맣게 잊어버릴 뻔했지 뭔가. TIL은 'Today I learned'의 줄임말이라는데, 사실 나는 초심자인 만큼 오늘 배운 점을 구체적으로 나열하지 않아도 'TIL' 이 한 마디면 충분할 것 같다. 매일매일 1분 1초가 나에겐 배움의 순간이라서, 말 그대로 오늘 하루는 언제나 'Today I learned(오늘 나는 배웠다)'로 요약할 수 있겠다.
  • 알고리즘 공부를 시작했다. 청년을 대상으로 하는 지원금 지급 업무를 할 때 내 또래 청년들이 너나 할 것 없이 왜 그리 다들 알고리즘이라는 것을 공부하는가 싶었는데 그것을 나도 오늘 접했다. 가뜩이나 수학 싫은데 수학적인 (느낌의) 개념을 코딩으로까지 표현하자니 숨이 턱턱 막힌다. 수업에서 예제로 나오는 것조차 나는 너무 버겁다. 알고리즘에서 내가 이해한 것들은 시간복잡도와 공간복잡도. 코딩에 있어 공간복잡도보다는 시간복잡도가 더 중요하고, 시간복잡도는 N으로 나타내는데 N 앞이나 뒤에 붙는 상수보다는 N 자체의 차수가 중요하다. 여러 경우에 따른 최악의 시간복잡도는 빅오표기법을 써서 O(N)과 같은 형태로 나타낸다.

내일 할 일

  • 무조건 알고리즘.. 문제를 척척 푸는 것까지는 바라지도 않는다. 이제 막 공부 시작한 지가 하루 이틀일 뿐이니까. 적어도 이런 식의 사고방식에 조금이라도 익숙해지고 싶다. 이해가 안 되더라도 강의는 꾸역꾸역 다 듣고 말겠다. 연습은 그 다음부터 해 나가면 될 일이다. 교보문고에서 주문한 알고리즘 책이나 얼른 왔으면 좋겠다. 제발 나 같은 초보를 배려해 주는 책을 알맞게 주문했기를...
  • 내일도 꼭 TIL을 적어보자.

'항해99 > 02_알고리즘(Day5~18)' 카테고리의 다른 글

항해02_알고리즘(Day8)  (0) 2021.06.15
항해02_알고리즘(Day7)  (0) 2021.06.14
항해02_알고리즘(Day6)  (0) 2021.06.13

+ Recent posts