데이터 추상화에 대해서 알기 위해 먼저 추상화를 알 필요가 있다. 추상화(abstraction)는 여러가지 필요한 부분, 중요한 부분을 하나로 만드는 것을 말한다. 그 예로, 동그란 원에 숫자가 12개까지 있고 시침과 분침 초침이 있는 걸 무엇이라고 할까? 더보기 답은 '아날로그 시계' 이다. 추상화는 아주 중요한 부분을 통합하여 그 의미가 무엇을 의미하는지를 알 수 있게 해준다. 그렇다면 데이터를 추상화한다는 것은 무엇일까? 간단하게 말하자면, 여러 데이터를 하나로 묶어(단순화) 더 높은 단계로 정의(추상화)하는 것이다. 다시 말해 데이터가 직접적으로 정의된 것(물리적인 표현)을 의식하지 않고 추상화한 데이터형으로써 사용하는 것이다. 이러한 데이터의 물리적 표현과 그 기본 조작 절차를 묶어 정의하고 그..
Software Design Pattern 일반적인 의미에서의 Design Pattern이라고 말하며, 반복되는 문제에 대한 일반 솔루션 또는 재사용 가능한 solution 무한한 가능성을 창출하기 위해(또는 다양한 문제에 대한 수많은 해결책을 제공하기 위해) 다양한 방법으로 조정되고 결합될 수 있다. Software Design Pattern 다양한 응용 프로그램에 쉽게 적응할 수 있는 소프트웨어 설계의 반복되는 (많은 유사한) 문제에 대한 해결책에 대한 재사용 가능한 설명 Software Design Pattern 사용 목적 상대적으로 적은 수의 설계 패턴으로 경험을 문서화합니다. 효과가 입증된 설계의 재사용 지원 소프트웨어 설계자가 다양한 소프트웨어 설계에 대해 소통할 수 있는 공통 어휘를 제공한다..
문제 출처:https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 코드는 다음과 같습니다: #include #include #include using namespace std; int solution(vector citations) { int answer = 0 ; sort(citations.rbegin(), citations.rend()) ; if (citations[0] == 0)..
문제 출처:https://www.acmicpc.net/problem/2822 2822번: 점수 계산 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문 www.acmicpc.net 문제 분석 이 문제는 총 8개의 점수 중 가장 큰 5개의 합을 출력하고 각각의 순서를 출력하면 됩니다. 다만 순서를 출력할 때는 오름차순으로 두어야하기 때문에 저는 이 문제를 풀기 위해서 sort를 2번 사용했습니다. 각 점수들을 pair형태로 를 입력합니다 pair를 내림차순으로 정렬합니다 가장 큰 5가지의 숫자들을 사용하기 때문에 5가지의 숫자들로 sum을 구하고, 그 숫자들..
문제 출처:https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 문제 분석 말 그대로 주어진 정수들을 이어붙일 때에 가장 큰 수를 찾아서 string 형태로 출력하면 되는 문제입니다. 저는 이 문제를 sort를 해주어야 한다고 생각했었고 custrom한 compare함수를 통해서 비교했습니다. string 자체적으로 크기비교가 되기 때문에 각 숫자들을..