분류 전체보기(408)
-
[자료구조] 스택의 개념, 구현 및 적용 C/C++
📕 스택이란?? 자료구조 스택을 이해하기 위해서는 영어 stack이 무엇인지를 알면 이해가 쉽다.stack은 '무더기', '쌓아놓은 더미' 등을 가리키는 명사의 뜻과 '쌓다'라는 동사의 뜻이 있다.여기서 우리가 눈여겨봐야 할 것은 '쌓는다'라는 특성이다. 📕 스택의 특징 어떠한 것을 '쌓는' 것이기 때문에 생기는 특성이 있는데, 바로 후입선출(LIFO)즉, 먼저 들어간 것이 나중에 나오는 특성이다.간단한 예시로 책 더미를 생각해보자.책을 위로 점점 쌓고난 후, 맨 밑에 있는 책을 꺼내기 보기 위해서는 그 책위로 쌓여있는 책을 다 빼낸 후에야 가능할 것이다.반대로, 맨 마지막에 쌓은 책의 경우 가장 위에 있기 때문에 제일 먼저 꺼낼 수 있을 것이다.그렇기 때문에 후입선출, Last In First ..
2021.05.28 -
(TIL) 20210527
1.Facts(한 것) 짝 프로그래밍 학교 수업 듣기 C++, 자바스크립트로 프로그래머스 문제 풀기 알고리즘 수업 듣기 2.Findings(배운 것) DFS와 BFS에 대해서 배웠다. (자료구조에서 배운 내용이라서 새로울 것은 없었지만, 그때와 다른 점은 나의 코딩 실력...) javascript에서 join() 함수를 사용 보았다. join함수는 배열에 있는 값들을 문자열로 변환시켜주는 함수이다. 이를 C++에서 똑같이 적용시키려면 to_string함수를 통해서 하나하나 바꿔주거나 map을 사용해서 바꾸는 방식을 사용해야 하는데 javascript에서는 함수 하나만으로 순회 및 변환이 가능해서 편했다. javascript의 reduce() 함수 역시 편한 함수다. 아래는 같은 문제를 두 개의 방식으로 ..
2021.05.27 -
(TIL) 20210526
1.Facts(한 것) 짝 프로그래밍 학교 수업 듣기 자료구조 복습 자바스크립트로 프로그래머스 문제 풀기 알고리즘 수업 듣기 2.Findings(배운 것) 자바스크립트는 공식문서도 잘 되어 있고 공식문서 못지않게 잘 정리된 블로그가 많아서 공부하기 수월하다. mdn이나 모던 자바스크립트를 활용하면 여러 해법이 나온다. 3.Feeling(느낀 점) 어제 오늘 좀 일찍 일어나서 많이 움직였다고 몸이 지친것 같다. 운동을 못가고 있어서 체력이 더 떨어지는 느낌. 체력적 안배가 필요하다. 4.Affirmation(자기 선언) 나는 매일 성장하는 개발자이다. 나는 배우는 것을 즐기는 사람이다.
2021.05.27 -
(TIL) 20210525
1.Facts(한 것) 백준 문제 풀기 짝프로그래밍 학교 수업 듣기 자료구조 복습 Accelerated C++ 책 구매 자바스크립트로 프로그래머스 문제 풀기 2.Findings(배운 것) C++정규표현식을 공부했다. 처음으로 regex라이브러리에 있는 regex변수와 regex_replace함수를 사용해봤는데 다른 언어에서는 \ 한 개로 탈출문자 처리가 가능했던것과는 달리 C++은 \\ 처럼 두개를 사용해야만 했다. #include #include #include int main() { string str = "(())"; regex re("\\(\\)"); string s = regex_replace(str, re, "x"); cout
2021.05.26 -
(TIL) 20210524
1.Facts(한 것) 백준 문제 풀기 HTML공부하기 학교 수업 듣기 swift 기본 문법 공부하기 2.Findings(배운 것) C++17에서는 라이브러리에서 최대공약수와 최소공배수를 위한 함수가 존재한다. gcd와 lcm이 바로 그것인데, 기존에는 gcd와 lcm을 재귀적으로 호출해서 구현해야 했던 반면, 이제는 단순히 함수 호출만으로 쉽게 문제를 풀 수 있게 되었다. swift 에서는 Optional이라는 변수가 있다. 값이 있을 수도 있고, 없을 수도 있다니... C에서는 값을 설정하지 않고 프린트를 하면 쓰레기 값을 출력하지만, Swift에서는 nil(없음)을 출력한다. 당연할지 모르는 말이지만, Optional 변수를 다른 변수에 할당할 수는 없다. 옵셔널 변수가 있을지 없을지 모르니까 말이..
2021.05.25 -
백준 #17087 숨바꼭질6 문제 풀이 C++
백준 17087 숨바꼭질 6, 실버 1 문제이다. 문제의 기본적인 이해는 금방되리라 생각한다. X-D와 X+D의 위치로 이동할 수 있고, D를 구하는 문제이다. 첫 번째 예제를 보면 위치 3에서 위치 1로 이동하려면 2만큼의 이동이 필요하고 1에서 7로 이동하려면 6만큼의 이동이 필요하다 또한 위치 7에서 위치 11로 이동하려면 4만큼의 이동이 필요하다. 수빈이는 1초마다 같은 거리를 움직여야 하기 때문에 한점에서 다른 한점으로 이동한 거리는 모두 가장 작은 이동거리의 배수일 수 밖에 없다. 그렇기 때문에 이동한 거리들의 최대공약수를 구하면 그것이 바로 정답이 된다. 처음에 문제를 풀때는 단순히 수빈이의 위치와 동생의 위치 차의 절댓값 중에서 가장 작은 값을 출력했는데, 이 풀이 방법이 잘 못된 이유는 ..
2021.05.24