Study/Programming Language

1. N진법 -> 10진법C++에서는 stoi() 라이브러리를 사용하면 N진법을 쉽게 10진법으로 바꿀 수 있다. stoi()의 기본 형태는 다음과 같다.int stoi(const string& str, size_t* idx = 0, int base = 10);str: 변환할 문자열idx: (선택) 변환이 끝난 위치를 저장할 포인터base: (선택) 진법. 기본값은 10진수여기서 base 값에 따라 진법 변환이 가능하다. 이때 base는 36까지만 가능하다!/* 2진수 변환 */string s = "1011";int n = stoi(s, nullptr, 2); // → 11/* 8진수 변환 */string s = "17";int n = stoi(s, nullptr, 8); // → 15/* 16진수 변환..
C++에서 짝수/홀수를 판단하는 방법은 크게 2가지가 있다.1. modulo 연산자 % 사용가장 흔히 쓰이는 방법이다. 2로 나누었을 때의 나머지 값을 가지고 판단한다.if (num % 2 == 0) { // 짝수} else { // 홀수}2. 비트 연산자 & 사용이진수에서 가장 끝자리(LSB)가 1이면 홀수, 0이면 짝수이다. 비트연산자 &를 사용해서 이진수의 가장 끝 자리를 검사한다.if (num & 1) { // 홀수} else { // 짝수}짝수만 판단하고자 할 때 아래와 같이 사용하면 될 것으로 착각할 수 있으나 아니다. 부정 연산자를 사용하는 것이 맞다. AND 연산에 대해 조금만 더 생각해보면 왜 이렇게 해야하는지 알 수 있다.// Xif (num & 0) { // 짝수}// Oif (!(n..
cin과 >> 연산자C++에서는 표준 입력 스트림인 cin과 >> 연산자를 이용하여 사용자로부터 키를 입력받는다. cin과 >> 연산자는 헤더 파일에 선언되어 있으므로 프로그램 서두에는 다음 문이 필요하다.#include using namespace std; bool, char, short, int, long, float, double과 같이 기본 타입에 대해 입력이 가능하다. 아래와 같이 사용한다.int width;cin >> width;char c;cin >> c; 여러 개의 >> 연산자를 이용하여 여러 값을 입력 받을 수 있다. >> 연산자들은 왼쪽부터 오른쪽으로 순서대로 키보드로부터 입력받는다.cout >";cin >> width >> height;cout 너비와 높이를 입력하세요>> 23 36..
cout과 std::cout C++에서는 위와 같이 cout과 를 이용해 다양한 데이터를 화면에 출력한다. 문자열 뿐만아니라 bool, char, short, int, long, float, double 모두 출력할 수 있다. cout 객체cout은 스크린 장치와 연결된 C++ 표준 출력 스트림 객체(standard output stream object)이다. cout은 C++ 프로그램에서 출력한 데이터를 자신과 연결된 스크린에 대신 출력해준다. cout 앞에 붙여진 std::의 접두어는 cout의 name space가 std임을 표시한다. 본래 헤더 파일에 재정의(operator overloading)되어 cout과 함께 사용된다. 아래 예시와 같이 다양하게 화면에 출력할 수 있다.  std::cou..
typedef란? typedef를 사용하면 새로운 자료형을 정의할 수 있다. 즉, typedef 키워드를 사용해 C의 기본 자료형을 확장할 수 있다. 사용하는 방법은 다음과 같다. typedef unsigned char BYTE; unsigned char은 기존의 자료형, BYTE는 새로운 자료형이다. 기존의 자료형 unsigned char을 새로운 자료형 BYTE로 정의하는 것이다. unsigned char 형은 작은 정수를 저장하는 데에 사용할 수 있다. unsigned char만 보았을 때 정수를 저장하는 데 사용된다는 것을 알기 어렵기 때문에 BYTE라는 이름으로 새롭게 정의해준 셈이다. 이렇게 정의된 BYTE는 다음과 같이 사용할 수 있다. BYTE index; // unsigned char i..
공용체란? C에서 같은 메모리 영역을 여러 개의 변수들이 공유할 수 있게 하는 기능을 공용체라 한다. 같은 메모리 영역을 공유하게 되면 메모리를 절약할 수 있다. 공용체를 선언하고 사용하는 방법은 구조체와 비슷하며, 구조체와 똑같은 방법으로 태그를 붙여서 사용한다. 다만 공용체는 멤버들이 같은 공간을 공유하기 때문에 동시에 모든 멤버 변수들의 값을 저장할 수는 없으며, 어떤 순간에는 하나의 멤버만 존재할 수 있다. 구조체는 각 멤버가 독립된 공간을 할당 받고, 공용체는 가장 큰 멤버의 크기만큼 메모리가 할당된다. 공용체 선언 union example { char c; int i; } 여기서 union은 키워드이고 example은 공용체 태그 이름이며 변수 c와 i는 공용체의 멤버이다. 앞에서 말했듯이 공..
구조체란? 구조체는 C에서 사용되는 파생 자료형 중 가장 일반적이고 많이 사용되는 자료형이다. 파생 자료형이란 기본 자료형인 char, int, double에서 파생된 것으로 배열, 구조체, 공용체, 포인터 등을 들 수 있다. 동일한 자료형을 묶어서 사용하는 배열과 다르게 구조체는 다른 자료형을 하나로 묶어서 표현할 수 있다. 예를 들어 학생을 하나의 종류로 나타낸다고 할 때 다음과 같이 묶어서 나타낼 수 있다. int number; // 학번 char name[10]; // 이름 double grade; // 학점 구조체 선언 구조체는 struct 키워드를 사용해 다음과 같은 형식으로 정의된다. 구조체를 선언하는 것도 하나의 문장에 해당하기 때문에 구조체 선언의 마지막에 세미콜론을 붙여줘야 한다. st..
https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 보통 문제에서 N 또는 M 등을 먼저 입력 받은 후 N개의 수를 입력받는 식이지만, 백준 10951 문제처럼 몇 개를 입력받을지 명시하지 않는 문제가 가끔 존재한다. 이럴때 사용하는 것이 EOF이다. EOF EOF는 End of File의 약자로, 파일에서 더 이상 읽을 데이터가 없을 때 사용한다. 코테 좀 준비했다면 알겠지만 java에서는 Scanner보단 BufferedReader를 사용해서 입력을 받으므로 BufferedReader를 사용해 EOF 처리하는 방법을 살펴본다. (Scanner로도 처리할..
찬 주
'Study/Programming Language' 카테고리의 글 목록