안녕하세요? 이화입니다. 최근 국민대 알고리즘 대회를 준비하고 있어요! 그래서 지인 분께 알고리즘 과외를 받으면서 C++ 공부를 하고 있습니다. 매일은 아니지만, 일주일에 두 번(과외 받은 거 정리 / 숙제 정리)이상은 이렇게 글로 정리해 보려고 해요! 과외 시간에 알고리즘 파트와 언어 파트로 나눠서 가르쳐 주시기 때문에, 아마 글 내용도 두 부분으로 나뉘겠네요. 오늘의 내용은 다음과 같습니다. 알고리즘 파트에서는 수학적 귀납법을 배웠습니다. 문법 파트에서는 C++의 입출력, 벡터, 스트링에 대해서 배웠습니다. 여담으로, 42 서울 라 피신은 다리 부상으로...(이렇게 이야기하니까 라 피신이 육상 경기 같아 보이지만, 전혀 아닙니다) 중간에 멈추게 되었습니다. 그래도 재미있는 경험이였어요. 오늘은 수학 ..
2023.03.02. 내용 수정 안녕하세요? 이화입니다. 저번에 못 쓴 내용을 마저 써 보겠습니다. 제목이 좀 바뀌었죠? 내용이 바뀌니까 자연스레 제목이 부자연스러워져서 조금 바뀌었지만, 변수와 포인터란 무엇인가 기초편에서 이어지는 내용입니다. 이 글은 다음에 해당하는 분들을 위한 글입니다. 변수와 포인터란 무엇인가 기초편을 읽었다. 그리고 이 글은 다음 내용을 담고 있습니다. 배열이란 무엇인가 배열과 포인터에는 무슨 관계가 있는가 배열을 함수의 매개변수로 넘겨주는 방법 포인터에 수를 더하고 빼는 건 무슨 의미인가 자. 시작해 볼게요. 1. 배열이란 무엇인가 이번엔 배열이 무엇인지부터 시작합니다. 여러분은 연속된 값을 표현하기 위해 여럿 선언한 적이 있을 겁니다. 아래 코드처럼요. int a, b, c,..
개발하다 다른 분들에게 이 코드가 왜 작동하지 않는지 질문하고 싶어질 때가 있습니다. 하지만, 주변에 다른 분들이 없다면, 다 바쁘신 거 같다면 어떻게 해야 할까요? 그런 분들을 위해 고무 오리가 필요합니다. 고무 오리가 아니어도 괜찮아요. 작은 인형이나, 상상 속의 무언가라도 준비하세요. 그리고 그것(여기선 오리라고 할게요)에게 코드를 최대한 자세히 설명합니다. 이 코드는 무엇을 위한 코드인데, 이 줄은 어떤 역할을 하고… 최대한 오리가 이해할 수 있도록 한 줄 한 줄 설명해봅시다. 그러다 보면 코드의 문제점을 깨닫게 됩니다. 이런 방법을 고무 오리 디버깅 또는 러버 덕킹(Rubber Ducking)이라고 합니다. 코드를 설명하는 과정에서 다시금 코드의 흐름을 파악하고, 버그를 수정하게 됩니다. 꽤 오..
2023.03.02. 내용 수정 안녕하세요? 이화입니다. 오늘은 포인터에 대한 내용을 써 볼 거에요. C언어를 처음 배우시는 분 중에는 포인터가 정말 어렵고, 큰 벽이라고 생각하시는 분도 있습니다. 하지만 포인터는 쉽습니다. 거짓말 아니고 인터넷에서 겁 주는 것보다는 정말로 간단한 개념입니다. 그렇지만 포인터를 배우면서 자칫 오개념을 얻거나 하는 경우가 많기에, 포인터에 대한 설명은 최대한 단순화되거나, 너무 복잡해지는 경우가 많다고 생각합니다. 이 글을 쓰며 저는 최대한 오개념을 배제하고, 컴퓨터 개론에 관한 내용을 첨가하면서 쉽지만 깊이있는 글을 쓰려고 노력해 보았습니다. 포인터는 응용이 어렵지 이론은 큰 어려움이 없다고 생각합니다. 이 글이 포인터를 통해 심화된 무언가를 할 때 이론적 기반을 충분히..
안녕하세요? 이화입니다. 현재 42서울 7기 1차 라 피신 진행중이신 분들은 dogkim이란 intra id로 조금 더 익숙하겠네요. 문제를 풀면서 새로운 걸 참 많이 배우게 되는데, 새로 배운 것과 원래 알던 것을 제 머릿속에서 글의 형태로 정리하면서, 피시너들을 포함한 다른 분들과 공유하기 위해 짧은 글 써 보게 되었습니다. 원래는 github site를 사용하는 블로그가 있었지만, 이번에는 부득이한 이유 블로그 테마가 영 맘에 안 들어서로 Tistory로 포스팅을 진행하고, 언젠가 블로그로 옮길 계획이에요. 참고로, 42서울과 직접적인 관련은 없는 내용입니다. 하지만 최대한 norminette 규정에 따르려고 노력한(테스트는 안 해봤다는 뜻입니다. 물론, 복사 붙여넣기하지 마세요. 문제 생기면 비공..