소트(Sort)란 2개 이상의 자료를 특정 기준에 의해 작은 값부터 큰 값 혹은 그 반대 순서로 재배열하는 것. (오름차순 정렬 / 내림차순 정렬) 아래에 제시한 소팅들의 정렬 과정은 모두 오름차순 기준입니다. 버블정렬(bubble sort) (O(n^2)) 인접한 두 개의 원소를 비교해서 자리를 교환하는 방식. 한 단계가 끝나면, ...
알고리즘 - 그리디 알고리즘(Greedy Algorithm)
그리디 알고리즘 그리디 알고리즘은, 알고리즘의 각 단계에서 가장 최선의 선택을 하는 기법입니다. 최소 동전 갯수 문제가 가장 대표적인 그리디 알고리즘의 예시 중 하나입니다. 동전 단위가 5, 10, 50원 짜리만 있고, 870원을 최소의 동전 갯수로 표현하려고 하는 문제가 있습니다. 동전의 갯수가 적으려면, 큰 단위의 동전을 써야 할 것입니다....
알고리즘 - Array 1(Exhaustive Search, Baby-gin Game)
본격적인 내용에 앞서, 앞으로 공부는 이렇게 진행할 예정입니다. 사이트 https://swexpertacademy.com/main/learn/course/courseList.do 를 접속하면 위처럼 무료로 수강할 수 있는 강좌 목록들이 나옵니다. 초심부터 한다는 생각으로 Programming Intermediate 과정부터 차근차근 해 볼 예정...
제목 1(sw 가이드)
포스팅 전
제목 1(리뷰)
포스팅 전
알고리즘 - C++ 기초 / 자주 쓰이는 문법들
알고리즘을 공부할 때는 무슨 언어로 시작할 지 선택하는 것이 중요한데, C++을 활용하기로 하였습니다. C언어를 알고 있는 상태라면 상대적으로 C++을 다루는 데 불편함이 없을 것입니다. C++로 알고리즘을 공부해 놓으면 다양한 라이브러리(예: STL) 들을 활용하는 데 이점을 가질 수 있다. 그리고 문법이 C보다 비교적 간결하고, 실행 ...
알고리즘 - SW Expert Academy 소개
알고리즘 - SW Expert Academy 소개 알고리즘 공부를 시작할 수 있는 좋은 사이트를 알게 되었다. SW Expert Academy : https://swexpertacademy.com/main/main.do 삼성에서 만든 알고리즘 학습 사이트인데, 백준처럼 온라인 저지도 있고 다양한 강좌도 모두 무료로 수강할 수 있는 점이 특징이다....
자바(JAVA) - 상속(Inheritance) (2) 메소드 오버라이딩(Overriding), 부모 메소드 호출, final 클래스와 final 메소드
메소드 오버라이딩(메소드 재정의, Overriding) 자식이 부모 클래스의 필드, 메소드들을 상속받지만, 그 중에서는 재정의가 필요한 메소드가 있을 수도 있습니다. 자바는 상속된 메소드 중 일부를 자식 클래스에서 다시 수정하여 사용할 수 있게끔 해 줍니다. 이 기능을 메소드 오버라이딩(Overriding) 이라고 합니다. 메소드를 오버라이딩 ...
자바(JAVA) - 상속(Inheritance) (1) 클래스 상속, 부모 생성자의 호출
상속이란? 자바에는 상속(Inheritance)이라는 개념이 존재합니다. 쉽게 말해 부모 클래스(상위 클래스)와 자식 클래스(하위 클래스)가 있으며, 자식 클래스는 부모 클래스를 선택해서, 그 부모의 멤버를 상속받아 그대로 쓸 수 있게 됩니다. 상속을 하는 이유는 간단합니다. 이미 마련되어 있던 클래스를 재사용해서 만들 수 있기 때문에 효율적이고...
자료구조 - 이진 트리의 Level order traversal
Level Order Traversal이란? 이진트리 순회 방법으로는 앞서 언급한 전위, 중위, 후위 순회 뿐만 아니라, 트리의 레벨 순서대로 순회하는 Level order traversal 이 있습니다. 말 그대로 트리의 노드 레벨 순으로 순회하는 것입니다. 기본 구조는 다음과 같습니다. 1) 루트 노드를 방문한다. 2) ...