C++
-
[C++ 14] C++ 기초 / 추가된 기능과 기억해야 할 내용프로그래밍 기초/C++ 2022. 5. 21. 16:54
C++ 기초 리터럴 + 2진수 표현 접두사가 추가되었다. 접두사 진수 타입 예제 10진수 값 없음 10진수 11 11 0 8진수 011 9 0x 16진수 0x11 17 0b 2진수 0b11 3 + 길이가 긴 리터럴의 자릿수를 표현할 수 있도록 작은따옴표(')로 자릿수 구분이 가능해졌다. long d = 6'546'687'616'861'129l unsigned long ulx = 0x139'ae3b'2ab0'94f3; int b = 0b101'1001'0011'1010'1101'1010'0001; const long double pi = 3.141'592'653'689'793'238'462l; 축소하지 않는 초기화 = 큰 값을 작은 크기의 변수로 초기화할 때 축소 변환하지 않고 오류를 발생시키는 초기화 방..
-
코딩 테스트를 위한 프레임워크 구현코딩 테스트/JUNGOL 2020. 10. 9. 14:34
코딩 테스트를 위한 프레임워크 프레임워크의 이점 문제 클래스들을 파일 단위로 분리하여 관리하고 원하는 문제 클래스만 실행할 수 있다. 프레임워크 구조 Base 클래스를 인터페이스로 정의하고 문제 클래스가 Base 클래스를 상속하여 해당 문제를 Code 메서드로 구현하며 main 함수에서 원하는 문제 클래스의 Code 메서드를 호출하여 실행한다. Base Code : virtual function Coding Test Class : Base Code : 코딩 테스트 문제 구현 main base : Base Call base.Code 프레임워크 구현 Base.h #pragma once class Base { public: virtual void Code() = 0; }; CodingTest.cpp #incl..
-
JUNGOL 실력키우기 여러가지 - 색종이(초) | 색종이(중)보관함 2020. 2. 16. 09:28
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 여러가지의 색종이 시리즈를 풀어보겠습니다. 1438 : 색종이(초) 이 문제는 가장 단순한 것이 정답일 수 있다는 것을 잘 보여주는 듯한 문제인 듯 합니다. 단순하게 100 x 100 크기의 bool형 배열을 만들고 최초로 체크될 때 넓이에 1을 추가하는 방식을 사용하면 입력된 위치를 따로 저장할 필요 없이 쉽게 넓이를 알아낼 수 있습니다. #include using namespace std; bool area[101][101]; int main(void) { int n; cin >> n; int x, y; int totalArea{ 0 }; for ..
-
JUNGOL 실력키우기 문자열 - 암호풀기(Message Decowding)보관함 2020. 2. 10. 10:42
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 문자열의 암호풀기 문제를 풀어보겠습니다. 1880 : 암호풀기(Message Decowding) 이 문제는 입력된 복호화 키를 값으로 하는 맵을 만들어 대치시켜주면 되는 간단한 문제입니다. 그런데 c++의 getline이 안먹어요. 심지어 이번에는 cin의 clear와 ignore 메소드를 넣어도 성공하지 못합니다. #include #include #include using namespace std; int main(void) { string str; cin >> str; map keyMap; char c{ 'a' }; for (int i{ 0 }; c
-
JUNGOL 실력키우기 문자열 - 세로읽기보관함 2020. 2. 10. 10:40
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 문자열의 세로읽기 문제를 풀어보겠습니다. 2857 : 세로읽기 이 문제를 간단하게 생각하면 이차원 배열로 생각할 수 있고 C++에서는 string의 size를 알 수 있으므로 string 배열을 이용하면 쉽게 해결이 가능합니다. #include #include using namespace std; int main(void) { string strArr[5]; int longest{ 0 }; for (int i = 0; i > strArr[i]; if (strArr[i].size() > longest) longest = s..
-
JUNGOL 실력키우기 문자열 - 문자열 찾기 | 단어 세기보관함 2020. 2. 10. 10:37
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 문자열의 단어 찾기 시리즈를 풀어보겠습니다. 2514 : 문자열 찾기 C++의 string 클래스에는 find라는 좋은 메소드가 포함되어 있는데 이 메소드의 오버로드를 살펴보면 문자열의 위치를 찾고 어느 인덱스 부터 찾을지를 결정할 수 있습니다. 이 문제는 이 메소드를 이용하여 쉽게 해결이 가능합니다. #include #include using namespace std; int main(void) { string str; cin >> str; string targets[2]{ "KOI", "IOI" }; for (int i = 0; i < 2; ++i..
-
JUNGOL 실력키우기 문자열 - 그릇보관함 2020. 2. 10. 10:35
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 문자열의 그릇 문제를 풀어보겠습니다. 2604 : 그릇 이 문제를 살펴보면 결국 이전에 들어온 문자와 현재의 문자가 같으면 5만큼 증가하고 다르면 10만큼 증가한다는 것을 알 수 있습니다. 이것을 고려하면 쉽게 해결이 가능합니다. #include #include using namespace std; int main(void) { string str; cin >> str; char pre{ str[0] }; int height{ 10 }; for (int i = 1; i < str.size(); ++i) { if (pre == str[i]) { heig..