728x90

분류 전체보기 148

[C++] Java 와 C++ 유사점 및 차이

1. 유사점 - C++ 과 Java 모두 클래스의 객체를 인스터스화 하지 않는 static 메소드 또는 함수를 지원한다. - C++ 과 Java 모두 오버로딩 생성자를 제공한다. 2. 차이점 - Java는 전처리기, typedef, defined를 지원하지 않는다. - Java는 클래스(class)를 지원하지만 구조체와 공용체를 지원하지 않는다. - 모든 Java 클래스의 최상위 클래스는 Object 클래스이다. (모든 Java 클래스는 Object 클래스를 상속한다.) - interface 키워드는 Java 만 제공한다. - Java에 선언하는 모든 변수 또는 메서드는 모두 클래스 선언 내에 포함된다. - Java는 다중 상속을 지원하지 않는다. - C++ 은 배열의 범위를 초과하면 이를 판단할 수 없..

Language/C++ 2020.12.13

[C++] 동적 할당 (malloc, calloc, realloc, new)

1. new와 malloc의 차이 1) malloc()은 함수이고 new는 연산자 이다. - malloc()은 라이브러리에서 제공하는 함수, new는 C++ 언어에서 기본으로 제공하는 키워드(라이브러리 추가 없이 사용가능) 2) malloc()은 보통 사이즈를 매개변수로 받고, Return Type이 'void *' 이므로 sizeof()와 캐스트 연산을 하는 것이 좋음. new는 할당할 타입을 지정하면 알아서 할당할 Type의 포인터로 넘어온다. 3) malloc()은 메모리를 동적으로 할당하는 것이 목적이므로 초기값을 지정할 수 없지만, new의 경우 할당과 동시에 초기화가 가능하다. - new는 생성자를 자동으로 호출한다. (malloc과 new의 가장 큰 차이점) 4) malloc()의 경우에는 ..

Language/C++ 2020.12.13

[C++] const 위치에 따른 역할

1. const ? - 해당 값을 변경하지 않겠다는 의미 2. 변수에서 사용 - const char * > 상수형 문자에 대한 포인터 > 포인터가 가리키는 변수의 값을 변경할 수 없음 e.g) char ch1 = 'a'; char ch2 = 'b'; const char *pch; pch = &ch1; *pch = 'c' // Error - Read Only Location - char const * > 문자에 대한 상수형 포인터 > 포인터 값을 변경할 수 없음 e.g) char ch1 = 'a'; char ch2 = 'b'; char *const pch = &ch1; *pch = 'c'; pch = &ch2 // Error - Read Only variable - const char cosnt * > 변..

Language/C++ 2020.12.13

[C++] C / C++ 차이

1. C와 C++의 차이 - C는 절차지향적 언어 C++은 객체지향언어 - C는 변수의 선언이 함수의 선두에 선언되어야 함 C++은 변수의 선언이 자유로움. - C는 하향식 접근 방법 C++은 상향식 접근 방법 * 하향식 접근 방법과 상향식 접근 방법 1) 하향식 접근 방법 > 분석과제가 주어지고 이에 대한 해결 방법을 찾기 위해 각 과정을 단계적으로 수행. > 분석적으로 사물을 인식하려는 'why' 관점에서 접근. 2) 상향식 접근 방법 > 문제의 정의 자체가 어려운 경우 데이터를 기반으로 문제를 지속적으로 개선하는 방식 > 사물을 있는 그대로 인식하려는 'what' 관점에서 접근. > 하향식 접근 방법의 한계를 극복하기 위한 분석 방법론. 2. C++에서 추가된 기능 - 인라인 함수 (본체가 호출부에..

Language/C++ 2020.12.13

[백준] 2206 - 벽 부수고 이동하기

www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 미로를 탐험하면서 벽을 부쉈는지에 대한 상태에 대해 알고 있어야 문제를 풀 수 있었다. 이는 visited[MAX_SIZE+1][MAX_SIZE+1][2] 의 형태로 3차원의 인덱스가 0일경우 부순적 없음, 1일경우 부순적 있음으로 생각하여 BFS 코드를 구현하면 된다. 헤더 파일 중 #include 를 써서 INT_MAX를 사용하고 BFS의 반환 값을 min 값으로 변경하며 사용했다...

[백준] 1697 - 숨박꼭질

www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net BFS를 이용하는 간단한 문제 if() 조건문 안의 메모리 초과 오류를 처음에 생각하지 않고 구현하였다가 디버깅 돌리면서 다시 깨닫게되었음 더보기 #include #include // def #define MAX_SIZE 100000 #define PAIR std::pair #define DEBUG_MODE 0 // global bool visisted[MAX_SIZE + 1]; //..

[백준] 7569 - 토마토

www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 7576 문제에서 '층' 이라는 개념이 추가된 것. '층' 이라는 개념만 추가해서 구현해주면된다. 위층, 아래층, 상, 하, 좌, 우를 고려해준다. std 라이브러리를 최대한 사용하지 않고, 배열을 1차원으로만 사용한다면 속도 향상이 된다. 코드 더보기 #include #include #include // struct struct POS { POS() { h = x = y = 0; } P..

반응형