알고리즘 마라톤 6일차
드디어 알고리즘 마라톤의 권장진도인 40번 문제까지 완료했다🥈🥈🥈
처음에는 다른 분들과 경쟁하는 기분으로 알고리즘을 풀었다면 지금은 나와 혼자 경쟁하는 기분이다.
이걸 풀어내지 못하면 다음 문제로 갈 수 없어..!
최상진도... 끝낼 수 있을까?
아직 최상진도인 20문제 중 17문제가 남아있지만 주말 포함 4일이면 충분히 가능하다고 생각했다.
그런 때에 만난 BOJ 9184 신나는 함수 실행...
문제 가장 첫 줄을 캡쳐했다.
첫 줄 부터 화가 좀 났지만, 그 밑에 비하면 양반이었다.
뭔가의 규칙을 찾아보겠다고 내가 한 짓의 일부다.
자바스크립트로도 문제에 있는 그대로 써봤다. (조금 풀면서 변형되었다.)
function w(a, b, c) {
if (a <= 0 || b <= 0 || c <= 0) return 1;
if (a > 20 || b > 20 || c > 20) return w(20, 20, 20);
if (a === b || a === c) return 2 ** a;
if (a < b) {
if (b === c) return 2 ** a;
if (b < c) return w(a, b, c - 1) + w(a, b - 1, c - 1) - w(a, b - 1, c);
}
return (
w(a - 1, b, c) +
w(a - 1, b - 1, c) +
w(a - 1, b, c - 1) -
w(a - 1, b - 1, c - 1)
);
}
동적계획법일 것이라는 느낌이 강하게 오지만 규칙을 찾지 못했다.
찝찝한 기분으로 하루를 끝내서 너무 아쉽지만 내일 좀 맑은 공기도 쐬고 그러다보면 생각이 날 것이라는 기대..😢
내일도 못 찾아내면 다른 분의 풀이를 봐야겠다.
스터디 팀원들과 함께 신청한 주특기 면담일이었다.
다른 분들의 질문을 들으면서 이렇게 세세하게 궁금해하고 질문하는구나 생각했다.
개발 뿐 아니라 다른 많은 공부들을 혼자 해오다보니 질문을 한다는 것이 낯설고 혼자 각종 매체를 뒤적여서 찾아내는 것이 더 익숙했던 것 같다.
이제는 혼자가 아니라 항해의 많은 분들과 튜터님들이 계시니 궁금하면서 도움을 받는 것이 더 좋은 질문들은 잘 정리해 두었다가 꺼내면 좋을 것 같다.
다른 사람에게 도움을 받고 도움을 주는 것에 익숙해져야겠다는 다짐을 했다.
CS 관련
내 질문은 컴퓨터 과학 지식에 대한 것이었다.
개발 공부를 해오면서 컴퓨터에 대해 너무 모른다는 생각이 들어서 운영체제, 네트워크에 대해서 공부한 적이 있다.
공부 이후에 개발 관련 지식들을 습득하거나 아티클을 읽을 때 좀 더 수월한 것을 느꼈다.
그래서 CS 지식들을 어디까지 얼마나 어느 속도로 익혀야 할 지 여쭤보게 되었다.
답은 그 때 그 때 필요한 것 위주로 녹아들듯이 학습할 것✨
전공자들이 4년 공부한 것을 지금 당장 따라잡을 수 없다는 것이다.
마음을 조금 가볍게 가지기로 했다.
당장 다른 전공 분들이 내 전공 4년 배운 지식들을 단 몇 개월만에 모두 익힌다면 조금 억울할 것 같긴 하니까😅
튜터님께서 말씀하신대로 하루에 하나씩이라도 아티클을 읽는 버릇을 기르면 좋을 것 같다.
내일 부터는 TIL에도 꼭 그 날 읽은 아티클을 적도록 하자.