목록언어/C++
Step-by-Step

https://www.acmicpc.net/problem/1915 1915번: 가장 큰 정사각형 첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다. www.acmicpc.net DP 없이 풀다가 시간 초과..ㅋㅋ ㅠㅠ 일단 사각형이 되기 위해서는 사각형 내부(테두리 포함) 모두 1이어야 한다. DP를 이용하면, 해당 좌표( i, j )의 ↑ ↖ ← 세 방향의 값의 최소값에 1을 더해주면 된다. 만약 세 방향 중 하나라도 0이 있으면 값이 1이 되고, 1은 칸 1개짜리 정사각형이다. ex) 세 방향의 값이 각각 2, 4, 5 인 경우 dp값은 3이 된다. 초록색 부분은 신경 안 써도 된다. 4랑 5 앞칸이 0이었다면 4랑 5칸에 1이 있었을 ..

JAVA는 Class를 이용하여 객체를 만드는데, C++은 Class가 있음에도 불구하고 다들 Struct를 사용하는 걸까 일단 구조는 비슷하다 (거의 똑같음) 중요한 차이는 접근제어자에 있다. 접근제어자 private : 동일 클래스 내에서만 접근 가능 protected : 해당 클래스와 상속받은 파생 클래스에서만 접근 가능 public : 어디서든 접근 가능 ※ 참조 : JAVA는 package 개념이 있지만, C/C++은 없다. Class vs Struct Class : private이 default Struct : public이 default 예를 들어보자 클래스 객체를 생성하고, 메소드를 이용하여 값을 가져오는 코드이다. private 멤버라 접근할 수 없다고 나온다. 해결 이런식으로 publi..
Java만 쓰다가 C / C++ 중에 하나를 선택해야 하는 순간이 왔을 때, C++를 선택한 건 정말 잘 한 결정이었다. 함수 기반 C언어와 달리 객체 지향인 C++은 Java를 잘 알고 있으면 금방 이해하고 다룰 수 있는 것 같다. ※ 다만 JAVA는 대부분 Pascal 표기법을 사용하는데, C++은 대부분 스네이크 표기법이다. ex) JAVA → PriorityQueue // C++ → priority_queue Struct struct Person { int h, w, idx; Person(int height, int weight, int index) : h(height), w(weight), idx(index) {} bool operatorh w < p.w) return..
시간만 있다면 더더더 공부하고 싶지만.. 모든 일정이 끝난 후 다시 재개....ㅠㅠ 간단한 문제 풀기 위해서 일단 꼭 알아야 하는 것들만 정리하겠다! 언제까지 검색하고 있을래??? 당장 외우자!!! Queue // 헤더 #include // 선언 queue q; // 내장 함수 q.pop(); // front 데이터 삭제 q.push(); // back에 데이터 추가 q.front(); // front 데이터 반환 q.back();// back 데이터 반환 q.size();// 현재 큐 사이즈 q.empty();// 비어있는지 swap(q1, q2);// 두 큐 내용 바꿈 Stack // 헤더 #include // 선언 stack stack; // 내장 함수 stack.push();// top+1에 데이..

https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net BFS + DFS만 주구장창 하던 나 반성해.. DP 연습 좀 해야겠다고 느낀 문제 😂 그냥 피보나치 수열처럼 단순히 누적으로 넣는 것이 아니라 좀 문제를 제대로 이해해야 전략을 세울 수 있다. 문제에서 주어진 예제 동전 3개로 10을 만들어야 한다. 일단 주의할 점은 0원을 만들기 위해서 모두 선택하지 않는 경우의 수 1개가 있다. 설명은 아래 그림 참조 (잘 그린지는 모르겠지만.) 코드 #inc..
C랑 C++ 중에 하나를 써야 하는 일이 생겼다. 전공 수업시간에 C프로그래밍을 배웠었는데, 대학교 2학년때 뿐이었고.. 그 뒤로는 JAVA 외길 인생이었다. (+Python도 종종 씀) C로 할까 하다가 입출력 간단한 C++로 결정 ! I/O 헤더파일 #include - Input/Output Stream std 클래스 using namespace std - namespace : 이름 공간 / std : 클래스- std class : cout, cin, endl 등 함수들 정의된 클래스- 사용할 때 std::cin 이런식으로 써야하는데 위 코드 정의를 해두면 그냥 cin 이렇게 써도 된다. Vector // 헤더 #include // vector 벡터명(크기); => 크기는 생략 가능 vector v;..