Language 23

(C++)all_of,any_of,none_of

C++ all_of 주어진 범위의 값들이 주어진 조건을 모두 만족하면 true반환 any_of 주어진 범위의 값들이 주어진 조건중 하나라도 만족하면 true반환 none_of 주어진 범위의 값들이 모두 주어진 조건을 만족하지 못하는 경우 true 예제 문자열로 저장된 정수들의 vector를 더했을 때 요소가 모두 0인 경우 "0"으로 return하고 싶을 때 사용 if (all_of(to_strnum.begin(), to_strnum.end() ,[](string num){return num == "0";})) { answer = "0"; } 이렇게 어떠한 배열이 있는 경우 특정한 값을 찾아서 처리해야할 때 유용하게 사용

Language/C++ 2023.05.18

(C++)조합

조합 순열과 다르게 순서는 상관없이 주어진 n개 중에서 r개을 뽑아서 나열하는 것 for문 최대 3개까지 뽑는경우에는 효율적이나 그 이상일 경우 재귀함수를 통해 구현하는 것이 효율적 #include #include using namespace std; vector v; int n = 5; int main() { for (int i = 0; i < n; i++) { v.push_back(i + 1); } //5개중 3개를 뽑는 경우 for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { for (int k = j + 1; k < n; k++) { cout

Language/C++ 2023.02.22

(C++)순열

순열 서로 다른 n개의 요소에서 r개를 뽑아 순서가 있도록 하나의 배열로 만드는 것 next_permutation 보통 do~while문과 함께 사용하며 순열의 형태로 순서를 바꾸는next_permutation함수는 while문에 들어간다. do { //로직 } while (next_permutation(first, last, pred));next_permutation의 매개 변수는 3개가 있으며 first는 순열함 범위의 첫 번째 요소 위치의 주소 last는 순열할 범위의 마지막 요소 하나 다음위치의 주소 순서에 따라 연속적인 요소에 대해 충족돌 비교 조건 정의 next permutation사용시 주의사항 visualstudio 공식문서의 next_permutation을 보면 원래 순서가 사전적으로 다..

Language/C++ 2023.02.21

(C++)배열 초기화-memset,fill

fill() & memset() fill() 배열을 0 이외의 값으로 초기화 시 사용 배열fill(초기화 시키고 싶은 시작주소, 끝주소, 초기화 값)헤더 #include vector 벡터는 맨처음 초기화 하지 않고 실행시 오류가 뜬다. 왜냐하면 동적배열이기 때문에 초반에 어떤 크기인지 알 수 없기 떄문이다. 따라서 문제에서 주어진 값을 먼저 넣고 초기화 할 때 사용하는 것이 좋음1차원 using namespace std; const int max_n =8; vector v; int main() { //1차원 벡터 for (int i = 0; i < max_n; i++) { v.push_back(i); } for (auto ele : v) { cout

Language/C++ 2023.02.08

(JAVA)IO

IO(Input & Output) input - 사용자가 프로그램에 데이터 전달하는 것 output - 프로그램이 결과를 내보내는 것 용어 스트림 : 흐르는 데이터 혹은 파이프의 구조 입출력 스트림 : 데이터를 읽고 쓰는 구조를 프로그램의 구조로 만들어 놓은 것 버퍼 : 데이터를 임시적으로 담아두는 공간 노드 : 데이터와 직접적으로 관여하는 필수적인 부분 (Byte, Char, String, File, Piped, Socket, System in) 필터 : 사용하면 성능을 향상시킬 수 있지만 없어도 되는 부분(node이외에는 모두 filter) Stream 자료의 입출력을 도와주는 중간 매개체 입출력 스트림 : Byte단위 전송 입출력 -er(Reader,Writer) : Char단위 전송 연속적인 데이..

Language/JAVA 2023.01.27

(JAVA)예외 처리

예외 처리 예외가 발생할 것을 대비하여 코드상에서 제어하도록 하는 것 에러(Error) 코드 상에서 프로그램 자체적으로 처리할 수 없는 오류 시스템이 종료되어야 할 상황 예외(Exception) Exception은 클래스로 볼 수 있음 (상속받은 다양한 Exception들이 있다) 프로그램 자체적으로 처리할 수 있는 오류 프로그램 실행 중에 발생하는 예외 ex) 0으로 나눌 때, 배열의 범위를 벗어나는 인덱스를 사용할 때 이러한 예외들은 미리 수정할 수 없기 때문에 프로그램 내에서 미리 예외 처리 java.io, java.net , java.sql의 패키지를 사용하려면 무조건 예외처리 필요 CheckedException 컴파일시에 예외 발생하고 반드시 예외 처리를 해야함(try catch or throw..

Language/JAVA 2023.01.26

(JAVA)Getter와 Setter

객체지향프로그래밍에서 객체들의 데이터(멤버변수)를 외부에서 직접적으로 접근하는 것을 방지하기 위해서 Getter와 Setter를 사용하여 접근하는 방법을 사용한다 또한, 외부에서 메소드를 거쳐서 데이터를 변경(Setter)하고 데이터를 읽는 방법(Getter)을 사용하는 것이 좋다. 메소드를 통해서 데이터에 접근하는 것이 좋은 이유는 메소드는 매개변수의 값을 유효한 값만 저장하기 때문에 객체의 무결성을 보장할 수 있기 때문이다. Getter private 접근제한자로 필드를 만들고 필드의 값을 숨긴 채 내부의 값을 꺼낼 때 Setter private 접근제한자로 필드를 만들고 전달 받은 값을 내부에서 변경해 필드에 넣을 때 코드 public class GetSet { //외부에서 접근할 수 없도록 접근제..

Language/JAVA 2023.01.22

(JAVA)인터페이스

인터페이스(Interface) implements 추상클래스 - 미완성된 요소를 포함, 상속강요 인터페이스 - 모든 메서드가 추상 메서드로만 이루어짐(구현이 안된것들로만 구성), 구현강요 인터페이스 내에서 기능은 미구현(ex) void show(); -> public abstract void show(); 값은 상수로 (ex) int a=1 -> public final static int a= 1; 위와 같이 두 방법으로 코드를 작성해도 오류가 나지 않고 각각 두번째의 코드로 인식을 한다. new 예약어로 객체 생성 불가 private 접근제한자 사용 불가 , public 혹은 protected사용 body ({ })를 붙이지 않는다 인터페이스의 추상메서드를 구현하지 않으면, 자식클래스는 추상 클래스가 ..

Language/JAVA 2023.01.20