문제 : https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net [내가 생각한 내용] 문자열을 R(반복횟수)만큼 문자열의 각 문자만큼 for문으로 처리해주려고 했다. 내가 작성한 코드 #include #include #include #include #include using namespace std; int main(int argc, char* argv[]) { int T, R[T]; string str[T]; string newStr[T];..
문제 링크 : https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net [해결 과정] 1. 원이라고 문제상에 나와있지만 사실상 일렬로 된 배열로 봐도 무방하다. 2. 자동으로 메모리 관리를 해주는 벡터 자료구조가 사용하기 용이하다고 생각. 나는 이것을 벡터라고 생각했는데 알고보니 큐를 이용해서 하면 된다. 내가 참고한 풀이 https://jaetsby.tistory.com/19 백준 요세푸스 문제 C++ (1158) 요즘 문제가 잘 풀리지 않는다ㅜ 이 문제 사실 조금만 고민해보면 쉽게 풀리는 문제였는데, 너무 어렵게 접근했던 것 같다. 처음 떠..
안녕하세요 강정호입니다. 오늘은 데이터 파일구조에 대해서 공부해보겠습니다. 데이터파일 구조 참고링크 : http://www.gurubee.net/lecture/2391 데이터 파일에는 블록, 익스텐트, 세그먼트, 테이블 스페이스 4개가 존재한다. 1) 블록(=페이지 - SQL SERVER) - 데이터를 읽고 쓸떄의 논리적인 단위 - SQL 성능을 좌우하는 가장 중요한 성능지표 항목 오라클 SQL SERVER 명칭 블록 페이지 블록크기 2KB,4KB, 8KB, 16KB, 32KB, 64KB 8KB 오라클에서는 블록의 크기가 다양하게 존재한다. 2) 익스텐트 - 테이블 스페이스로부터 공간을 할당하는 단위 - 균일익스텐트(Uniform) - 64KB 이상의 공간을 필요로 하는 테이블이나 인덱스를 위해 사용됨 ..
Searched Case Expression과 Simple Case Expression의 차이 - 이 둘의 가장 큰 차이점은 Simple Case Expression은 'expression'을, Searched Case Expression은 'Condition'을 사용하여 Return 값이 정해집니다. 예시) Searched Case Expression SELECT t.id, CASE WHEN t.color = 1 THEN 'Red' WHEN t.color = 2 THEN 'Blue' WHEN t.color = 3 THEN 'Green' ELSE 'NoColor' END AS color FROM @t t 위의 예시를 보면 Searched Case Expression에서는 t.color의 조건에 따라 결과..
안녕하세요 강정호입니다. 오늘은 Composite INDEX(결합 인덱스)에 대해서 공부해보겠습니다. [결합 인덱스 정의] 결합 인덱스란 인덱스를 생성할 때 두 개 이상의 컬럼을 합쳐서 인덱스를 만드는 것을 말합니다. 용도 : 주로 SQL 문장에서 WHERE절의 조건 컬럼이 2개 이상 AND로 연결되어 함께 사용되는 경우에 많이 사용하게 됩니다. [예제] EMP 테이블에 인원 100명이 있는데, 그 중에서 남자 50명, 여자 50명이 있다. 남자 중에 이름이 'SMITH'인 사람이 단 2명이 있다. 성별이 남자 중에서 이름이 SMITH인 사람을 찾아라 쿼리문 SELECT ename, sal FROM emp WHERE ename = 'SMITH' AND sex = 'M' ; 결합 인덱스 생성 구문 CREA..
안녕하세요 강정호입니다. 오늘은 DESCENDING INDEX(내림차순 인덱스)에 대해서 공부해보겠습니다. [내림차순 인덱스 정의] 여러 인덱스들을 생성할 때 큰 값이 먼저 오도록, 즉 내림차순으로 인덱스를 생성하는 것을 의미. 이 유형의 인덱스는 주로 큰 값을 많이 조회하는 SQL에 생성하는 것이 좋다. ex) 인터넷 뱅킹의 계좌 조회시 최근 날짜부터 나오게 하는 것 생성 예제 CREATE INDEX idx_prof_pay ON professor(pay DESC);
안녕하세요 강정호입니다. 오늘은 DB의 인덱스 중에서 함수기반 인덱스에 대해서 공부해볼 예정입니다. 인덱스를 사용하면서 우리는 질문을 하게 됩니다. 과연 인덱스는 어느 컬럼에 만들어야 할까요? 거의 대부분 "WHERE 절에 오는 조건 컬럼이나 조인 컬럼 등에 만들어야 한다" 입니다. ex) WHERE pay = 1000이란 조건일 경우, pay 컬럼에 인덱스를 만들어야 합니다. But!! 만약 pay 컬럼으로 인덱스를 생성했는데, 정작 SQL 문장에서는 WHERE pay + 1000 = 2000이라는 조건으로 조회를 했다고 하면 pay 컬럼의 인덱스는 사용할 수 없게 됩니다. --> INDEX Suppressing Error * INDEX Suppressing Error : 인덱스를 잘 생성해 놓고 SQ..
RGB문제1) 색칠할 수 있는 최대의 경우 : 3의 n승 => 완전탐색으로는 구하기 어렵다. 문제해결1) func(idx, color) 함수를 정의2) idx 번쨰 집을 color로 칠한다3. 이 때 idx부터 n번째 집까지 칠하는데 드는 최소비용. 문제해결1. func(idx, color)는 재귀적으로 어떻게 정의?2. 현재 위치를 칠할 때는 이미 cost가 정해져있다. 3. func(idx, color) = min(func(idx+1, c1), func(idx+1, c2)) + cost[idx][color] => 이것 자체만으로는 완전탐색과 다를바가 없다.4. 메모이제이션 하는 코드가 들어가 있어야 한다. DP 문제의 경우 ~ 경우의 수를 구하여라, 최소값을 구하여라, 최대값을 구하여라 와 같이 끝맺..
2635번 수이어가기 : https://www.acmicpc.net/problem/2635 문제다음과 같은 규칙에 따라 수들을 만들려고 한다.첫 번째 수로 양의 정수가 주어진다.두 번째 수는 양의 정수 중에서 하나를 선택한다.세 번째부터 이후에 나오는 모든 수는 앞의 앞의 수에서 앞의 수를 빼서 만든다. 예를 들어, 세 번째 수는 첫 번째 수에서 두 번째 수를 뺀 것이고, 네 번째 수는 두 번째 수에서 세 번째 수를 뺀 것이다.음의 정수가 만들어지면, 이 음의 정수를 버리고 더 이상 수를 만들지 않는다.첫 번째 수로 100이 주어질 때, 두 번째 수로 60을 선택하여 위의 규칙으로 수들을 만들면 7개의 수들 100, 60, 40, 20, 20 , 0, 20이 만들어진다. 그리고 두 번째 수로 62를 선택..
일곱난장이 : https://www.acmicpc.net/problem/2309문제왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오.입력아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다..
알고리즘 스터디 2회차 [일곱 난장이]* 스페셜 저지 : 답이 여러가지가 있을 수 있다. 문제해결법11. 7개를 선택하는 완전 탐색 알고리즘 설계2. 모든 경우의 수를 진행3. 만족하는 답이 한 개라도 발견되면 문제 해결 문제해결법21. 9개 중에서 7개를 선택해야 한다는 것은 2개를 선택하지 않는 것2. 선택하지 않는 것을 선택해보자3. 전체의 합에서 2개를 선택해 빼서 100이 되게 만들자. [홀수 문제]1. 주어지는 수들의 합을 구하자2. 주어지는 수들 [악수구하기] 문제해결법1. N의 약수를 어떻게 구할 것인가?2. 가장 쉬운 방법은 1-N까지 전부 확인3. 조금 더 빠른 방법은? --> N이 십억, 20억일 때 좀 더빠른 밥버이 있을까?? 문제해결법21. 각각의 약수는 서로 매칭되는 약수가 있음..
알고리즘 공부를 할 때 효과적인 방법 - 답을 보는 것이 부끄러운 것이 아니다.- 문제를 풀 수 있는만큼 많이 풀어보자- 라이벌을 정해보자( 단 이길 수 있을 것 같은 사람으로) 프로그래밍에서 하는 흔한 실수- 쉬운 문제를 어렵게 푸는 것- 컴퓨터가 잘하는 것은 따로 있다- 컴퓨터가 잘하는 것을 최대한 활용하자. 가능한 모든 경우의 수를 다 해보는 것이 중요하다! - 재귀 호출은 완전 탐색을 구현하는데 아주 효율적인 도구 재귀 함수를 구현하는 방법은 정형화 되어 있음1. 기저 사례를 작성한다 : 함수가 끝나는 시점을 기저 사례라고 한다.2. 재귀 함수를 호출한다.3. 값을 반환한다. 단어의 개수(BOJ 1152)1. 여러 단어가 한 줄에 걸쳐 주어진다.2. 각 단어는 공백으로 구분 된다.3. 입출력의 원..
안녕하세요 강정호입니다. 오늘은 책임 있는 객체 디자인에 대해서 공부 해보겠습니다. GRASP의 약자G : GeneralR : ResponsibilityA : AssignmentS : SoftwareP : Principles Object DesignWhat are inputs to Object DesignProcess Inputs2일간의 요구사항 분석 워크샵 20개 중에서 3개의 유즈케이스프로그래밍 경험다음 Elaboration iteration을 위한 계획large-scale과 논리적인 설계Artifacts to Object design유즈케이스 텍스트시스템 시퀀스 다이어그램오퍼레이션 컨트랙트 Object Design을 위한 활동은 무엇이 있는가?- 디자인 모델에서의 특정 유즈케이스가 어떻게 구현되는지..
안녕하세요 강정호입니다. 오늘은 엘라스틱 서치를 사용하여 서울 지하철 대쉬보드를 만들어보겠습니다. 동영상 가이드 : https://www.youtube.com/watch?v=xPjNtd8xUZo 1-1 단계 : ElasticSearch 설치하기 ElasticSearch를 설치한 이후 설정파일에서 메모리 사이즈를 늘려줍니다.$ cd elasticsearch 2.4.1/bin elasticsearch.in.sh 파일에서 다음과 같이 추가합니다.(동영상 : 7분 54초) Plugin 설치위와 같이 엘라스틱 서치 플러그인을 설치해야 아래와 같은 화면이 나타나게됩니다. 1-2 단계 : Kibana 설치하기(동영상 : 9분 5초)영상보다는 강의노트를 기준으로 Kibana 설치하는 것을 추천드립니다. 1-3 단계 :..
안녕하세요 강정호입니다. 오늘은 트랜잭션에 대해서 공부해 보겠습니다. 트랜잭션이란?트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. 트랜잭션의 특징1. 트랜잭션은 데이터베이스 시스템에서 병행제어 및 회복 작업 시 처리되는 논리적 단위이다.2. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위이다.3. 하나의 트랜잭션은 Commit되거나 Rollback 된다. 병행처리의 문제점다수의 사용자가 데이터베이스에 요청을 보내게 되면 이러한 요청들을 처리할 방법이 필요하다. 만약 하나의 요청을 끝내고 다른 요청을 수행하는 방식이라면 처리시간이 매우 오..
안녕하세요 강정호입니다. 오늘은 소프트웨어 공학에서 말하는 Pattern에 대해 공부해 볼게요 What are patterns?1. 원칙과 솔루션이 구조화된 형식으로 문제를 해결할 수 있는 방법 2. 새로운 컨텍스트에서 적용할 수 있는 명명된 문제/ 솔루션의 페어. 3. 새로운 상황에 적용할 수 있는 방법 디자인 패턴을 사용하는 이유는 간단하다.객체지향적 코드를 재사용하기 위해서 좋은 패턴의 특징1. 문제를 해결해 준다. 2. 증명된 컨셉이다. 3. 해결책이 분명하지 않다. 4. 관계에 대해서 묘사한다. 5. 패턴은 중요한 인간적인 컴포넌트를 가진다. 패턴의 타입1. Architectural Patterns: 소프트웨어 시스템의 근본적인 구조를 표현한다 2. Design Patterns: 소프트웨어의 서..
- Total
- Today
- Yesterday
- push_back
- 재테크공부
- 도커
- resize
- 항해솔직후기
- 유즈케이스
- pop_back
- 관계대수
- 열반스쿨기초반
- docker
- 월급쟁이부자들
- 깃
- GIT
- 항해플러스백엔드
- Use case
- 항해플러스후기
- Spring boot
- Inception
- 월부닷컴
- 깃허브
- 부동산공부
- 파라메터
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- github
- 2023년
- 폭포수
- 내년은 빡세게!!
- front
- 인셉션
- 개발자 회고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |