항해99

항해 99 2주차 알고리즘 [WIL]

Brad Daeho Lee 2021. 3. 14. 19:38

 

2주차 알고리즘

 

항해99 2주차는 알고리즘을 공부하는 주간이다. 3주차까지 포함하여 총 2주동안 알고리즘에대해서 전혀 몰랐던 사람도 2주 후에는 코딩테스트 시험을 보고 통과 할 수 있도록 만들어주는 그런 프로그램으로 스케쥴이 짜여져 있다. 알고리즘 첫주차에는 조원들과 함께 일주일동안 주어진 문제를 풀고 마지막날에 간단한 알고리즘 테스트를 본다.  

 

이번 첫 알고리즘 주차는 상당히 재밌었다. 2가지 이유가 있는데, 첫번째는 문제 푸는것 자체가 재밌었다. 두번째는 항해99 크루원들과 같이 공부할 수 있어서 재밌었다.

 

내가 느끼기에 알고리즘 공부는 어려운 수학문제를 푸는 느낌이다. 문제를 이해하고 이 문제를 어떻게 접근할지 고민하고 또 고민하고 계속 고민하다가 유레카!하고 풀이방식을 찾아내는게 뭔가 수학같다. 수학문제 푸는걸 나름 좋아해서 알고리즘 문제도 안풀리때는 짜증나지만.. 풀었을 때는 아주 기분이 좋타. 그리고 도저히 모를 때 다른사람의 답안을보고 이해하는것도 궁금증이 해결되니까 재밌다. 

 

알고리즘 푸는것 자체도 재밌었지만 조원들과 같이 풀고 주위 사람들과 내가 풀고 이해한것을 공유할 수 있어서 재밌었다. 나도 알고리즘을 이번에 처음배운거여서 누구를 가르칠 능력이 되는지는 모르지만 이번주에 생각보다 남들에게 도움을 줄 기회가 많았다. 문제푸는데 정신없어서 못도와 줄 때도 있었지만, 최대한 많이 도와주려고 노력했고 나도 도와주면서 공부했던 개념들이 더 잘 이해가 되어서 정말 많이 도움이됬다. 그리고 문제가 너무 잘 안풀려서 힘들 때도 서로 힘이 되었던것 같다. 항해99에서 좋은분들과 함께 공부를 할 수 있어서 감사하다.

 

알고리즘을 1주 더 공부를 하는데 함께 많이 성장하고 싶다. 화이팅이다! 😁

 

 

문제 풀기

1주일동안 총 21문제를 풀어야되고, 새롭게 공부해야할 개념들은 총 14개였다. 문제의 개수만 보면 좀 적다고 생각할 수 도 있지만 알고리즘을 처음 접해보는 나로써는 타이트한 스케쥴이였다.

 

한 문제를 푸는데 보통 2시간씩 풀었고 그래도 문제를 풀지 못하면 다른사람이 올려놓은 답과 설명을 보고 어떻게 푸는지 이해를 했다. 정확하게 잘 이해되지 않는것들은 조원들과 코드리뷰를 할 때 서로 물어보고 답해주었다.

 

21문제중에 답을 보지 않고 스스로 푼 문제가 14문제이다. 2/3을 스스로 푼거면 생각보다 잘했다고  생각 한다. ㅎㅎ 스스로 문제를 풀고 백준 프로그램에서 정답이뜨면 너무나도 짜릿하고 좋다!

 

백준 문제번호 개념
10869 사칙연산
2588 사칙연산
2884 if 문
1110 while 문
4344 1차원 배열
4673 함수
1157 문자열
2941 문자열
2869 기본 수학 1
10250 기본 수학 1
1929 기본 수학 2
11729 재귀
11651 정렬
2805 이분탐색
4949 스택
1874 스택
1021
2606 DFS 와 BFS
7576 DFS 와 BFS
1003 동적계획법
11053 동적계획법

 

 

 

블로그 작성

항해99에서 시킨거는 아니였지만 알고리즘 문제를 풀고 공부한 개념들이나 문제풀이 방식을 더 잘 이해하고 기억하기 위해서 블로그에 그날 풀었던 문제중에 중요하다고 생각하는 문제들을 정리해서 올렸다.

 

leedaeho1188.tistory.com/27?category=928283

 

백준 알고리즘 4344번 [파이썬]

배운 내용 1. 두 변수에 한번에 인풋을 할 때 어떻게 split()을 사용해야되는지 배웠습니다. input().split(" ", 1)은 첫번 째 띄어쓰기를 기준으로 split을 해서 두 변수에 나눠준다는 뜻입니다. 2. 이 문

leedaeho1188.tistory.com

 

leedaeho1188.tistory.com/28?category=928283

 

백준 알고리즘 1157 [파이썬]

배운 내용 이 문제는 처음에 풀어서 답이 나왔는데 시간초과로 인해서 다시 세팅을 해야했다. 원하는 답만 나온다고해서 문제를 푼게 아니라 내가 짠 코드가 범위안에서 돌아가는데 효율적인지

leedaeho1188.tistory.com

 

leedaeho1188.tistory.com/29?category=928283

 

백준 알고리즘 1929 [파이썬]

배운 내용 1. 이번 알고리즘 문제에서 return을 처음 써봤는데, return은 함수 안에서만 쓸 수 있다는것을 깨달았다. 밑에 함수를 보면 if isPrime(k): print(k)에서 isPrime에 True가 return이되면 print(k)가..

leedaeho1188.tistory.com

 

leedaeho1188.tistory.com/30?category=928283

 

백준 알고리즘 11729 [파이썬]

배운 내용 재귀함수관련 문제중에 제일 유명하다고 할 수 있는 하노이 탑 이동 순서 문제를 풀어보았는데, 재귀함수 알고리즘 문제를 풀어본적 없는 나에겐 너무 어려운 문제였던것 같다. 하지

leedaeho1188.tistory.com

 

leedaeho1188.tistory.com/31?category=928283

 

백준 알고리즘 11651 [파이썬]

배운 내용 숫자나 문자를 정렬할 때 sort 사용법에 대해서 배웠다. sort() 함수 만으로 생각보다 할 수 있는것이 많았다. [x, y]라는 숫자값이 여러개가 있는 리스트에서 x 크기가 작은 순서대로 x 크

leedaeho1188.tistory.com

 

leedaeho1188.tistory.com/32?category=928283

 

백준 알고리즘 4949 [파이썬]

배운 내용 이 문제는 스택을 사용해서 문제를 풀었다. Stack은 데이터를 일시적으로 저장하고, 후입 선출(LIFO, Last In First Out) 구조를 가지고있다. 파이썬에서는 append를 사용해서 데이터를 저장하

leedaeho1188.tistory.com

 

leedaeho1188.tistory.com/33?category=928283

 

백준 알고리즘 10815 [파이썬]

배운 내용 이 문제는 시간초과 때문에 이분탐색을 사용해야한다. 이분탐색은 리스트안에서 내가 원하는 값이 있는지 탐색할 때 첫번 째 index와 마지막 index 사이에 중간 index를 찾아서 그 중간 값

leedaeho1188.tistory.com

 

시험 및 풀이 동영상

마지막 날에는 6일 동안 공부한 내용을 바탕으로 2시간동안 총 3문제를 풀었다. 3문제 다 풀었는데 2개는 백준에 올렸을 때 통과했고, 마지막 한 문제는 시간초과가 떳다.. ㅜ 문제가 엄청어렵지는 않았지만 그래도 3문제 다 3문제 중에 2문제 맞춘거면 잘한것 같다. ㅎㅎ

 

문제를 다 풀고 나서 3문제중에 하나를 골라서 풀이영상을 찍었다. 동영상을 유투브에다가 올려본게 처음이여서 신선했고 머리로 이해했다고 결코 입으로 이해한것을 잘 설명할 수 있는건 아니라는 생각이들었다. 나중에를 위해서라도 입으로 내 코드를 설명하는 능력을 기를 필요가 있음을 느꼈다!

 

 

백준 10815번 [파이썬]