본문 바로가기

전체 글18

[missing-semester] 간단한 셸(Shell) 사용기 전역이 얼마 남지 않은 지금, '무엇을 하는게 좋을까?' 라는 생각이 문득 들었다. 그러던 와중, 나의 관심을 끌만한 사이트를 발견하게 되었다. https://missing-semester-kr.github.io/ 여러분의 CS 교육에서 누락된 학기 여러분의 CS 교육에서 누락된 학기 CS 교과과정은 운영체제에서 기계학습에 이르기까지 CS 내의 고급 주제에 대해 모두 가르쳐 주지만, 거의 다루지 않는 중요한 한 가지 과목이 있으며, 대신 학 missing-semester-kr.github.io 일반적인 컴퓨터 과학(CS) 교육에서는 거의 다루지 않는 '컴퓨터 생태계 활용 능력'을 길러주는 수업을 MIT에서 따로 제공하는 사이트다. 학교에서는 흔히 CS과목인 자료구조, 알고리즘, 운영체제, 그리고 네트워크.. 2022. 12. 26.
[PS] c++ vector의 begin() 과 end() 함수 c++에는 vector 라는 자료구조가 있는데, vector의 begin()과 end() 함수에 대해 우리가 자주 할 수 있는 실수에 대해 이야기해보려 한다. (알고리즘 문제를 풀다가, reverse() 함수를 쓸 일이 생겼는데, reverse(v.begin()+숫자, v.end()) 이게 도대체 어디서부터 어디까지를 거꾸로 전환하는지 갑자기 헷갈려서 찾아봤다.) vector 의 begin()이란 함수는 cplusplus.com 에 따르면, 'Returns an iterator pointing to the first element in the vector', 즉 벡터의 첫 번째 원소를 가리키는 iterator를 반환한다 라고 나와있다. 그렇다면, 많은 사람들이 'end() 함수는 그럼 벡터의 마지막 원소.. 2022. 12. 18.
[알고스팟/c++] Sorting Game SORTGAME 문제 풀이 https://algospot.com/judge/problem/read/SORTGAME algospot.com :: SORTGAME Sorting Game 문제 정보 문제 중복이 없는 정수 수열이 주어진다. 이 때, 우리는 이 수열의 임의의 구간을 선택해서 해당 구간을 뒤집을 수 있다. 이 뒤집기 연산을 통해 전체 수열을 정렬하고 싶다. algospot.com 오늘은 "알고리즘 문제해결전략"에서 너비 우선 탐색(BFS)에 대해서 공부했다. 책에서는 너비 우선 탐색은 깊이 우선 탐색과 달리 주로 그래프의 최단 경로 문제를 풀기 위해 사용된다고 나와있다. 그 이유는 BFS는 정점에 인접한 거리에 있는 정점들을 우선적으로 방문하기 때문이지 않을까 싶다. 예를 들어, 우선적으로 바로 인접한 정점들(정점과 정점 .. 2021. 7. 28.
[알고스팟/c++] 고대어 사전 DICTIONARY 문제 풀이 https://algospot.com/judge/problem/read/DICTIONARY algospot.com :: DICTIONARY 고대어 사전 문제 정보 문제 아마추어 고고학자인 일리노이 존스는 시카고 근교에서 고대 문명의 흔적을 찾아냈습니다. 그 흔적 중에는 이 언어의 사전도 포함되어 있었는데, 이 사전에 포함된 algospot.com 접근 방식 1. 이 문제에서는 의존성이 있는 입력이 주어지며, 우리가 해결해야할 문제는 의존성이 있는 알파벳을 "순서대로" 출력하는 것이다. "알고리즘 문제해결전략" 책의 표현을 빌리자면, "위상 정렬은 의존성이 있는 작업들이 주어질 때, 이들을 어떤 순서로 수행해야 하는지 계산해 주는 것"이다. 알파벳에 특정한 순서를 부여해 단어들을 정렬하고 있다. 이로써 위.. 2021. 7. 27.
git 한글 깨짐 현상을 해결하면서 최근에 블로그 포스팅에 쓴 "게임판 덮기" 알고리즘 문제 소스코드를 Github에 커밋하려고, git add 후 git status 명령어를 쳤는데, "게임판 덮기.cpp"로 나와야하는 것이, backslash 와 숫자들의 조합으로 표현된 것(걍 깨진 것)을 볼 수 있었다. (심기 불편...) 간단히 구글링을 해보니, 터미널에 git log --global core.quotepath false 이 명령어를 치면 문제가 해결이 된다고 나와있었다. git log --stat을 통해 잘 적용되었는지 확인했다. (이미 커밋한 상태였어서 staging area에 아무것도 없었다. 그래서 git status로는 파일명을 확인할 수 없었기에... 이 명령어를 사용했다.) 잘 적용되었다. 같은 한글 깨짐 현상을 해결하.. 2021. 7. 26.
[알고스팟/c++] 게임판 덮기 BOARDCOVER 문제 풀이 https://algospot.com/judge/problem/read/BOARDCOVER algospot.com :: BOARDCOVER 게임판 덮기 문제 정보 문제 H*W 크기의 게임판이 있습니다. 게임판은 검은 칸과 흰 칸으로 구성된 격자 모양을 하고 있는데 이 중 모든 흰 칸을 3칸짜리 L자 모양의 블록으로 덮고 싶습니다. 이 algospot.com 접근 방식 1. 재귀함수로 게임판의 흰 칸을 가능한 블록 모양(네 가지)로 채우는 방식으로 풀면 되지 않을까? (가능한 모든 경우의 수를 세면서) 재귀함수의 탈출 조건으로 게임판이 모두 '#'으로 채워져 있으면, 경우의 수를 1 추가해주고, 탈출하는 것으로 해준다. 2. 브루트포스로 모든 칸을 이중 for 문으로 돌면서, 흰 칸인 경우에, 네 가지 블.. 2021. 7. 25.