한화시스템 BEYOND SW 11기

Ep 07. 평정심

gotopm 2024. 12. 29. 00:28
Prologue. 평정심

 

나에게 있어 보완해야할 점이 있다면 '평정심' 이다.

이전에 일을 할 때 직업 특성상 항상 시간에 쫓기고, 스케줄의 변동이 잦아서

그 때마다 '평정심을 갖추자.. 갖추자...' 했던 기억이 난다.

 

그 땐, 업무적 특성이 내 평정심을 휘둘렀다면

지금은 알고리즘 문제가 강풍에 휘날리는 깃발마냥 훌훌 불어댄다..

 


 

알고리즘

 

이번 주는 내내 알고리즘 수업이 진행되었다.

강사님께서 먼저 기본적인 개념과 예제를 보여주신 후 곧바로 문제풀기를 시키시면 우리는 문제에 집중해나갔다.

문제에 골.똘.히 집중하다보면 정말 한 시간 한 시간이 훅 지나간다.

 

이번 주 첫날에 힙정렬에 대해 배웠는데,

그 구현과정을 따라가지 못했다. 그러나 구현과 상관없이  개념이 적용된 프로그래머스 문제들을 풀어내서

그나마 다행이지 싶었다.

다행히 그날 강사님 강의가 녹화되고 있어서 집에 가서 강의를 다시 돌려본 후에야 이해할 수 있었고 복습을 마칠 수 있었다.   

 

<힙 정렬>

https://branch-bat-97c.notion.site/Heap-165fcc8f239f801f91c9d8c4ddb04d6c?pvs=4 

 

Heap 정렬 | Notion

우선순위 큐는 힙 자료구조와 힙 정렬로 구현된다.

branch-bat-97c.notion.site

 

 

힙 정렬 다음엔 BFS&DFS에 대해 배웠다.

BFS와 DFS는 미리 개념을  예습해갔었고 문제도 몇 문제 풀었어서 수업을 따라갈 수 있었다.

다만, 그럼에도 불구하고 강사님께서 내주시는 문제를 풀어내지 못해서 복습을 진행해야했다.

해당 내용은 DFS&BFS 2번 내용에 있는데 프로그래머스-피로도 문제에서 강사님이 재귀의 특성을 더 활용한 

풀이를 보여주는데 그때 아~하고 쾌감인지 감탄인지 모를 느낌이 들었는데,

내가 저런 재귀를 스스로 짤 수 있을 때가 온다면... 그 때 진짜 쾌감을 느낄 수 있겠구나 싶었다...

 

<DFS&BFS>

https://branch-bat-97c.notion.site/DFS-BFS-160fcc8f239f80bba43ad51b92759425?pvs=4

 

DFS & BFS | Notion

https://www.youtube.com/watch?v=x8Zwup81DlA(참고 유튜브)

branch-bat-97c.notion.site

 

<DFS&BFS 2>

https://branch-bat-97c.notion.site/DFS-BFS-2-166fcc8f239f804abcc1d23ee36231f7?pvs=4

 

DFS & BFS(2) | Notion

아래와 같은 배열이 있을 때, 1부터 탐색했을 때 탐색하는 모든 경로가 나오게 하라 int[][] arr = {{1, 2}, {1, 3}, {2, 4}, {2, 5}, {3, 6}, {3,7}, {4,8}, {4,9}, {5,10}};

branch-bat-97c.notion.site

 

나의 평정심을 다이나믹하게 만든 알고리즘이 있다면,

그것은 이름에 걸맞는.. Dynamic Programming..DP다.

프로그래머스 정수삼각형 문제를 강사님께서 내주셨는데.

손가락만 키보드에 올려놓은 채, 코드 한 줄을 못 치고 한 시간 넘게 흘려버린 것 같다.

중간에 강사님이 로직을 알려줌에도 불구하고 말이다...

그리고 학생들이 이 정도면 꽤 풀어냈다고 하셔서 풀이를 넘기셨는데, 

이걸 풀어낸 사람이 많다고..? 하고 살짝 현타가 오기도 했다.

그날 저녁 자습시간에 따로 한 시간을 더 투자해 결국엔 풀어내 다시금 기분을 좋게 만든 문제다... 

 

오늘도  DP위주로 문제를 풀며 공부했는데...

DP가 명확한 뭔가가 없어 어려운 것 같다.

 

<DP>

https://branch-bat-97c.notion.site/DP-169fcc8f239f8027b217df841c9d79a6?pvs=4

 

DP | Notion

프로그래머스-정수삼각형

branch-bat-97c.notion.site

 


금요일에는 투포인터 알고리즘을 배웠는데, 

배열에 두 개의 가상 포인터를 둔 다는 개념이 참 멋있다(?) 싶었다.

 

<투포인터>

https://branch-bat-97c.notion.site/TwoPointer-169fcc8f239f80ed8aa5c6b41c7b779d?pvs=4

 

TwoPointer | Notion

투포인터 알고리즘은 배열이나 리스트같은 선형 자료구조에서 두 개의 인덱스(start,end)를 설정하여 효율적으로 문제를 해결하는 알고리즘이다.

branch-bat-97c.notion.site

 

 

 


Epilogue. 몰입?

 

한창 dfs,bfs공부를 하다 런닝맨 유툽을 보면서 쉬고 있었다.

그러다 마피아 게임이라는 것을 하는데 

마피아가 안대를 낀 멤버들을 풍선 막대기로 때리면 멤버들이 마피아를 찾아내는 게임이었다.

멤버들이 눈밭에난 마피아의 발자국을 보고 움직인 경로를 추리하는데...

 

나는  그것이 마치 멤버들이 하나하나의 노드고 

마피아가 멤버들을 때리며 이동하는 것이 탐색경로처럼 보였다.

나름... 알고리즘에 몰입? 되어있는 듯하다...ㅋㅋ;

 

 

런닝맨 마피아게임

 

'한화시스템 BEYOND SW 11기' 카테고리의 다른 글

Ep 09. 스턱  (3) 2025.01.12
Ep 08. 지피지기 백전오십승  (1) 2025.01.05
Ep 06. 전투준비태세  (2) 2024.12.22
Ep 05. 흔들림  (2) 2024.12.14
Ep 04. 언더독  (3) 2024.12.07