lang (11) 썸네일형 리스트형 c++ Basic Math 에라토스테네스의 체 -> 큰 범위 내에 존재하는 모든 소수 찾아야 할 때 사용 -> 각 수가 소수인지 판단한 결과를 저장하는 배열을 사용 -> 2~루트n 까지 반복하며 해당 수의 배수를 지워나가는 방식 vector prime(n+1,true); prime[0]=prime[1]=false; //0과 1은 소수 아니므로 for(int i=2;i int로 표현 가능한 최대값을 초과한다면, 오버플로우가 발생할 수 있기에 'long long'을 사용하면 프로그램이 더 큰 값에 대해 오버플로우 없이 처리할 수있다 c++ map 파이썬에서 딕셔너리 역할을 C++에서는 map이 대신한다 (중복 처리에 사용) map에 데이터 넣는 방법 -> std::pair 객체를 반드시 넘겨주어야 한다 // 맵의 insert 함수는 pair 객체를 인자로 받는다 student_score.insert(std::pair("AMY", 2.23)); // std::make_pair 함수 활용 student_score.insert(std::make_pair("TONY", 3.04)); // [] 연산자 사용 student_score["LEE"] = 3.56; key에 접근 : student_score->first value에 접근 : student_score->second map은 기본적으로 key 값을 기준으로 오름차순 정렬된다 c++ 배열 수를 입력받아 배열에 저장할 때 int p; cin>>p; A[i]=p; 이렇게 과정을 거치지 않고 바로 아래처럼 하기 cin>>A[i] 1차원 벡터 정렬 #include #include vector v; v.push_back(4); v.push_back(3); v.push_back(2); v.push_back(1); sort(v.begin(),v.end()); // 내림 차순 정렬 sort(v.begin(),v.end(),greater()); // 오름차순 정렬 2차원 배열 정렬할 때 보통 벡터를 많이 사용한다! N행 M열인 벡터를 만들고 싶다면 vector v(N, vector(M)); 이렇게 선언 해주기! 2차원 벡터 정렬 sol 1) #include #include #include using na.. 재귀함수 이 문제에서 재귀함수를 주로 다루므로 오랜만에 재귀함수에 대해 다시 짚고 넘어가봤다!!! 함수가 호출되면 스택프레임이 스택에 push되고, 함수가 종료되면(return을 만나거나 함수 끝까지 돎) 스택프레임이 스택에서 pop 된다 제일 위에 있는 함수는 count==5라 return을 만나 함수가 종료되었고 나머지 함수들은 아직 func(count+1)까지만 수행해 함수의 끝까지 수행하지 않았으며 return을 만나지도 않았다. 즉, 함수가 종료된 상태가 아니기에 System.out.println("2")를 거쳐 함수 끝까지 수행시켜줘야 함수가 종료되어 pop될 수 있다. -> 이 과정을 겨치면 결론적으로 1이 5번 pop되고, 2가 5번 pop 된다 아래 블로그 바탕으로 이해한 걸 정리해보았다 http.. 이중배열 , 덱 ArrayList로 이중배열 만들기 -> ArrayList의 원소로서 다시 ArrayList을 사용하는 방식 ArrayList graph = new ArrayList(); for (int i = 0; i < n; i++) graph.add(new ArrayList()); for(int i=1;i if(!visited[i]) 라고 작성함으로써 원소 저장 안된 상태인지 확인 가능 C++ - 입출력,스택,큐,덱 1. 빠른 입출력 ios_base::sync_with_stdio(false); cin.tie(NULL); -> 빠른 입출력을 위해 이 두 가지를 붙여주어야 한다 1) 첫 줄은 c와 c++의 동기화를 푸는건데 이를 통해 c++와 c의 버퍼를 분리해서 속도 빨라짐 2) cin과 cout이 묶여있는데 이를 푼다 (cin 입력받을때마다 출력버퍼 비워주는 과정을 없앤다) 3) + endl 대신 개행문자 '\n' 쓰기!! #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int a,b; cin>>a>>b; cout 반환하는 함수랑 빼는 함수랑 별개다! 따라서 top() 해서 출력해주고 pop해서 빼주기.. null 값 return 할 때 defualt값 처리 h.get(now)를 하면 null값을 return할 수도 있기에 null값을 int형으로 바꾸면서 오류가 생긴다! -> 이 경우를 처리해주기 위해 "getOrDefault"를 이용하여 null인 경우에는 0으로 대체하여 num에 할당해주기! for(int i=0;i=1){ ar.add(now); cnt+=1; } 자바 개념 복기 Stringtokenizer에서 nextToken(); -> String을 반환하므로 int를 원하면 Integer.parseInt(nextToken())로 형변환해주기 자바에서 배열 정렬 -> Arrays.sort(배열이름) static 키워드는 클래스의 인스턴스를 생성하지 않고도 해당 메서드를 직접 호출할 수 있도록 도와준다 public class MathUtils { // 정적 메서드: 인스턴스를 생성하지 않고 직접 호출 가능 public static int add(int a, int b) { return a + b; } // 정적 메서드: 인스턴스를 생성하지 않고 직접 호출 가능 public static int multiply(int a, int b) { return a * b; } } publi.. 이전 1 2 다음