◼ IT Etc./(Until 2021)
[C++] 클래스의 private 접근 제어자의 지정 범위
C++는 객체 지향 언어이므로 공부할 때 반드시 클래스(Class)의 개념을 공부하게 된다. 클래스(Class)는 간단하게 '객체의 설계도'라고 표현할 수 있는데, 이를 처음 배우는 학생이 클래스의 기초에 나오는 내용인 접근 제어(access control)를 공부할 때 헷갈릴 만한 부분이 있어 이번 시간에 간단히 포스트로 다뤄보고자 한다. 사실 이 내용은 필자가 대학교 1학년 시절 C++를 처음 배울 때 아무도 이것에 대해 알려주지 않아 기말고사 시험 당일, 그것도 시험 문제 푸는 당시에 갑자기 스스로 의문이 생겨 시험시간 내내 곤혹스러워 했었던 내용이었다. (다행이 그 문제는 맞았던걸로 기억..) 먼저, 클래스와 접근 제어에 관한 개념이 어느 정도 잡혀있다는 전제로 설명을 하니 이런 개념이 아직 ..
제대 후 첫 슬럼프, 극복을 위한 공부의 변화
제대 후 프로그래밍을 공부하면서 큰 벽에 부딫쳤다. 슬럼프를 만난 것이다. 공부하고 있는 알고리즘 문제가 급격히 어려워지고 노는 재미에도 좀 빠지다 보니 공부에 대한 흥미가 급격히 떨어졌다. 그래서 어떻게 하면 다시 즐겁게 공부를 이어나갈 수 있을까. 고민하는 시간을 가졌다. 먼저, 고민을 하다가, 곧바로 프로그램을 만들어 보며 필요한 지식을 그때마다 찾아서 공부하는 방법이 좋다는 것이 기억났다. 그렇게 직접 무언가를 만들어보며 성취감을 얻고, 그것을 통해 프로그래밍에 재미와 즐거움을 느껴야 한다는 것이다. 예전 어떻게 프로그래밍을 공부하는 것이 좋을까 찾아보다가 여러 IT 종사자 분들이 공통적으로 추천했던 방법이었다. 그리고 지금 내가 하고 있는 공부들 돌아보니, 다 이론 위주의 공부였다. 알고리즘은 ..
매일 꾸준히.. 노력이 적으면 얻는 것도 적다.
블로그를 운영하면서 코딩 일기에 그 동안 배운 내용들을 한꺼번에 몰아두는 것보단 각각 카테고리에 맞는 글을 작성하여 올려두는 것이 더 좋겠다는 판단이 들어 앞으로 코딩 일기는 며칠 분의 내용을 요약해서 쓰고, 정보 전달보다 개인적인 내용을 더 집중적으로 담기로 했다. 그래서 이제 코딩 일기는 1주일에 적으면 1편, 많아야 2~3편 정도로만 쓸 계획이다. 알고리즘 효율성을 높히기 위해 코드를 작성하고 수정하는 훈련 오늘로 구름 EDU의 알고리즘 문제해결기법 강의의 2단원을 마쳤다. 매일 조금이라도 계속해서 알고리즘 공부를 해왔더니 바쁜 와중에도 계획보다 하루 빨리 마칠 수 있었다. 아쉽게도 모르는 C++문법 개념이 나와 일단 넘긴 한 문제와 코딩을 여러 차례 수정하여도 TImeout(시간 초과)로 테스트 ..
[알고리즘] 버블 정렬(Bubble Sort) 알고리즘 쉽게 구현해보기 (C++)
이 글은 프로그래밍에 능숙하지 않으신 분들도 어렵지 않게 이해할 수 있도록 최대한 쉽게 풀어 설명한 글입니다. 왜냐하면 저도 초보자거든요. 버블 정렬이란 무엇인가? 버블 정렬은 대표적인 정렬 알고리즘 중 하나로 원소를 정렬하는 모습이 마침 거품이 올라오는 모습같다고 해서 붙여진 이름이다. 버블 정렬은 아래와 같은 알고리즘으로 동작한다. 『 데이터의 수를 N이라고 하자. 아래의 과정을 N번 반복한다. 배열의 0번 칸의 숫자가 1번 칸의 숫자 보다 크다면 두 값의 위치를 교환한다 배열의 1번 칸의 숫자가 2번 칸의 숫자 보다 크다면 두 값의 위치를 교환한다 ... 배열의 N-2번 칸의 숫자가 N-1번 칸의 숫자 보다 크다면 두 값의 위치를 교환한다. 』 즉, 한 번의 순환이 끝나면 조사한 모든 원소 중 가장..
[백준 2309번] #1. 일곱 난쟁이 - 처음으로 해본 PS (C++)
처음으로 백준 온라인 저지에서 문제 같은 문제를 풀어보았습니다. 어떤 문제로 시작하는 것이 좋을까 구글링 하다가 한국정보올림피아드 초등부 문제부터 풀어보는 것이 좋다고 해서 무작정 찾아 들어가 푼 문제입니다. 알고 보니 이 문제는 완전 탐색(Brute Force) 문제라던데 필자는 아직 안 배운 내용이라 그냥 선택 정렬 알고리즘으로 풀었습니다. 나중에 실력을 더 쌓고 완전 탐색으로 다시 한 번 풀어보겠습니다. 어쨌든 처음으로 푼 문제라는 것이 중요하니까!! 문제 www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무..
오늘의 공부 후기 (알고리즘, 유니티)
일단 복학 전까지 1차 목표는 1. '알고리즘 문제해결입문' 구름 EDU 강좌로 알고리즘 공부 1주일에 한 챕터 씩 끝내는 걸로 목표 2. 유니티 초보 강좌 다 보고 예제 게임 1개 따라 만들어 완성해보기 3. 블로그 게시글 1주일에 4개 이상 꾸준히 쓰고 구글 에드센스 등록하기 4. 1일 최소 1커밋 실천하기. (이건 코딩 공부 매일 좀만 해도 충분히 할 수 있는 것) 다른 코딩 공부들은 학교 다니면서 해도 괜찮을 것 같고, 공부 할 걸 지금 늘려버리면 다 흐지브지 될 것 같으니 일단 이렇게 알고리즘과 유니티 공부 이 두 가지에 집중하기로 하자. 블로그 게시글도 꾸준히 쓰고. 그래서 구글 애드센스로 광고도 달아보자. 근데 블로그 방문자 수를 늘리려면 아무래도 이런 나의 개인적인 일기 형식의 글보단 좀 ..
[알고리즘] 선택 정렬(Selection Sort) 알고리즘 쉽게 구현해보기 (C++)
이 글은 프로그래밍에 능숙하지 않으신 분들도 어렵지 않게 이해할 수 있도록 최대한 쉽게 풀어 설명한 글입니다. 선택 정렬이란 무엇인가? 선택 정렬 알고리즘은 기본 정렬 알고리즘 중 하나로 다음 아래의 과정을 반복하는 알고리즘이다. 1. 배열의 주어진 범위에서 최솟값의 위치를 찾는다. 2. 최솟값을 해당 범위의 가장 앞 숫자와 자리를 바꾼다. 3. 이후, 해당 범위의 가장 앞 자리를 제외한 나머지 범위에 대해 위의 과정을 반복한다. 위의 과정을 모두 마치면 배열 내 정수의 원소가 오름차순(점점 커지는 순)으로 정렬된다. 선택 정렬 알고리즘 구현해보기 먼저, 메인 함수에는 정수형 배열에 원소값을 입력 받고 함수로 구현한 알고리즘을 통해 배열 원소를 오름차순으로 재배열 한 후 반복문으로 각 원소 값을 출력하는..
점점 재밌어지는 알고리즘 공부(선택정렬 구현!) 반대로 위기의 유니티 공부..
알고리즘 공부 오늘은 어제에 이어서 구름 EDU에서 김동이 강사님이 진행하시는 '알고리즘 문제해결기법 입문' 강좌로 독학을 이어나갔다. 앞으로 매일 시간이 날 때마다 이걸 통해 알고리즘을 계속 공부해 나갈 계획이다. 마음 같아선 2학기 복학 전까지 완강하고 싶으나 수강평을 보면 대기업 코딩 테스트까지도 커버할 수 있을 정도의 수준과 분량이라 과연 그 때까지 내가 다 소화할 수 있을지 걱정이 좀 된다. 그러나, 이왕 열심히 하기로 한 거 끝까지 최선을 다해보자. 아직 첫 단원이라 반복문과 조건문, 함수의 사용으로 대부분의 문제를 해결할 수 있었다. 특히 오늘 푼 문제 중 유명한 알고리즘인 선택 정렬 알고리즘 문제도 있어 따로 게시글을 작성해두었다. sylagape1231.tistory.com/13 [알고리..
간단한 코딩 문제라도 오류를 동반할 수 있고 인내심이 요구된다.
하루 종일 깃허브 블로그 만들기에 시간을 쏟기 전 입대 전에 구름 EDU란 곳에서 결제해 둔 알고리즘 학습 강좌를 잠시 했었습니다. edu.goorm.io/ 구름EDU - 모두를 위한 맞춤형 IT교육 구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/ edu.goorm.io 강좌 중 코딩 문제 하나를 풀었는데 다음과 같았습니다. 반복문과 조건문을 이용하여 배열 내 원소들 중 최대 정수 값을 반환하는 코드를 작성하면 되는 간단한 문제입니다. 게다가 기본 틀도 제공해 줘서 저는 배열 내 최댓값 반환 함수만 구현하면 되는 상태였습니다. #include #includ..
하루를 걸쳐 깃허브 블로그를 만들어 봤는데...
개발자 및 IT업계 종사자라면라면 누구나 한다던 깃허브(GitHub). 저도 익히 들어봤지만 제대로 해본 적도 없고 뭔지도 잘 몰라서 이번 기회에 한 번 제대로 알아보고 지금부터라도 해보고자 했습니다. github.com/ GitHub: Where the world builds software GitHub is where over 56 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat... github.com 깃허브란, 간단하게 말해서 팀 프로젝트..