Major

· Major/C&C++
arr이라는 벡터에서 최대값/최소값을 찾아 삭제하는 메서드 arr.erase(min_element(arr.begin(), arr.end())); arr.erase(max_element(arr.begin(), arr.end()));
· Major/C&C++
arr에 연속된 중복 원소가 있을 때 중복을 제거하여 answer에 대입하는 함수입니다. vector solution(vector arr) { arr.erase(unique(arr.begin(), arr.end()),arr.end()); vector answer = arr; return answer; } * 전체 중복을 제거하진 않습니다 연속된! 중복을 제거함
· Major/C&C++
regex_replace.(문자열, regex(정규식), 치환 문자열) 문자열 안에있는 정규식으로 표현된 내용이 치환문자열로 치환된다 위 함수를 사용하기 위해서는 regex 헤더파일을 include 해줘야한다. 코딩테스트 연습 - 숫자 문자열과 영단어 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr #include #include int solution(string s) { s = regex_replace(s, regex("zero"), "0");..
· Major/Java
* 예외 처리 1. 예외란 - 예외 : 잘못된 코드, 부정확한 데이터, 예외적인 상황에 의하여 발생하는 오류 2. 예외 처리기 (try-catch, throws) try{ // 예외가 발생할 수 있는 코드 } catch{ // 예외 처리 } finally { // try 블록이 끝나면 무조건 실행된다 } public void writeList() throws IOException { ... } 3. 예외의 종류 1) Error - 자바 가상 기계 안에서 치명적인 오류 발생 - H/W 문제 등으로 파일을 읽을 수 없는 경우 - 컴파일러가 체크하지 않음! 2) RuntimeException - 프로그래밍 버그나 논리 오류에 기인한다 - 컴파일러가 체크하지 않음! 3) 기타 예외 - 회복할 수 있는 예외로 반..
· Major/Java
1. 리팩토링 1) 분류 코드를 상태/전략 패턴으로 치환 - 이 리팩토링은 상태(전략)패턴이라는 디자인 패턴을 이용하여 리팩토링 한다. 2) 리팩토링 카탈로그 이름 분류 코드를 상태/전략 패턴으로 치환 상황 분류 코드마다 객체가 다른 동작을 함 문제 동작을 switch문으로 나누고 있지만 분류 코드가 동적으로 변하므로 분류코드를 하위 클래스로 치환은 사용 불가 해법 분류 코드를 나타내는 새로운 클래스를 작성해서 상태/전략 패턴을 사용함 결과 o 분류 코드 타입 판별이 가능해짐 o 분류 코드에 따른 클래스 동작을 다형성으로 해결 가능 x 클래스 개수가 늘어남 2. 예제 프로그램 클래스명 역할 Logger 로깅 클래스 State 상태 객체를 나타내는 추상 클래스 StateStopped STATE_STOPPE..
1. 텍스트를 위한 파일 1) 개념 : 텍스트 필드로만 구성된 레코드를 접근할 수 있는 화일 2) 특징 - 텍스트 필드는 하나의 필드 안에 여러 개의 탐색 값(단어, keyword)가 포함 - keyword : '데이터베이스', '시스템', '질의어' 라는 단어를 어떤 방법으로 탐색할 것 2. 역 리스트 화일 1) 특징 - 역 리스트 화일 구조 : 인덱스 화일 + 포스팅 화일 + 데이터 화일로 구성 - 인덱스 화일 : 키워드 + 관련 레코드 수 + 포스팅에 대한 포인터 - 포스팅 화일 : 키워드를 포함한 데이터 레코드에 대한 포인터 리스트, 발생빈도, 키워드의 중요도, 발생 위치 추가 - 데이터 화일 : 문서 화일 2) 예시 - 키워드는 가나다 순으로 정렬 3) 장단점 ⓐ 장점 : 구현이 용이, 속도가 ..
· Major/Java
1. 리팩토링 1) 분류 코드를 하위 클래스로 치환 - 분류코드의 종류에 따라 다른 동작을 한다면, 하위 클래스로 치환하는 리팩토링이 좋다 - 상위 클래스에 선언한 메서드를 오버라이드해서 다형적 메서드로 만드는 것이 핵심 2) 리팩토링 카탈로그 이름 분류 코드를 하위 클래스로 치환 상황 분류 코드마다 객체가 다른 동작을 함 문제 switch 문을 써서 동작을 구분함 해법 분류 코드를 하위 클래스로 치환해서 다형적 메서드를 작성함 결과 o 동작이 클래스별로 나뉨 x 클래스 개수가 늘어남 3) 구조와 동작 - 구조 : 프로그램의 정적인 성질 - 동작 : 프로그램의 동적인 성질 👉 분류 코드를 하위 클래스로 치환 리팩토링은 하위 클래스라는 '구조'를 새로 만들거나, switch 문 하나에 모여있던 '동작'을 ..
· Major/Java
1. 리팩토링 1) 분류 코드를 클래스로 치환 - 분류 코드는 객체 종류를 나타내는 값 - 분류 코드가 int와 같은 기본 타입이면 분류 코드 범위 밖의 값이 사용되거나 다른 분류 코드와 착각할 수있음 👉 타입 판별이 되지 않는 또는 타입 세이프가 아닌 문제 2) 리팩토링 카탈로그 이름 분류 코드를 클래스로 치환 상황 객체를 식별하기 위한 분류 코드가 int 같은 기본 타입임 문제 타입 판별이 안됨 해법 분류 코드를 나타내는 새로운 클래스 작성 결과 o 분류 코드의 타입 판별이 가능해짐 x 클래스 개수가 늘어남 2. 예제 프로그램 클래스명 역할 Item 상품(책, DVD, 소프트웨어)을 나타내는 클래스 ItemType 분류 코드를 나타내는 클래스(리팩토링으로 새로 작성) Main Item 사용법 예제 클..
1. 다차원 공간 화일 1) 특징 - 여러 개의 필드를 동시에 키로 사용한 화일 2) 종류 - PAM(Point Access Method) : 다차원의 점 데이터를 저장, 검색 - SAM(Spatial Access Method) : 선, 면과 같은 다차원 도형 데이터를 저장, 검색 2. k-d 트리 1) 개념 - 이원 탐색 트리를 다차원 공간으로 활장한 것 - 기본 구조와 알고리즘은 이원 탐색 트리와 유사 - 트리의 레벨에 따라 차원을 번갈아 가며 비교 2) 특징 - 주기억 장치 상에서 동작 - 소규모의 다차원 점데이터를 인덱싱 할 때 적합 - 균형 트리가 아님 3) 삽입 - 4사분면에서 루트 점 저장하고 x값과 y값을 번갈아가며 비교하며 자식 노드에 삽입한다. 4) 단점 : 균형트리가 아니므로 검색 성..
BeNI
'Major' 카테고리의 글 목록