0. 시작하기

컴퓨터 알고리즘 문제를 해결하기 위해서는 가장 먼저 프로그램 언어를 하나 이상 다룰 줄 알아야 한다. 깊게 알아야 필요는 없고 배열사용/조건문/반복문/함수사용 4가지 정도만 할 줄 알면 대부분의 알고리즘을 작성할 수 있다. Baekjoon 사이트는 거의 모든 언어를 지원하지만 그래도 대중적인 언어(C/C++, JAVA, Python) 중에 고르는 것이 여러모로 편리하다. 이 풀이는 C++ 로 작성되어있다.


1. 수의 입출력과 연산

#include <iostream>
 
using namespace std;
 
int main() {
	int a, b;
	cin >> a >> b;
	cout << "a + b = " << a + b << "\n";
	cout << "a * b = " << a * b << "\n";
	cout << "a - b = " << a - b << "\n";
	cout << "a / b = " << a / b << "\n";
	cout << "a % b = " << a % b << "\n";
	return 0;
}

int 형 변수 ab를 입력받아 사칙연산한 결과를 출력하는 예제이다. 위 예제와 동일하게 double 형 변수나 float형 변수도 입력과 사칙연산을 진행할 수 있다. 여러 계산을 동시에 진행할 경우, 계산의 순서는 수학과 동일하다.

2. 문자열의 입출력과 연산

#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
	string a, b;
	cin >> a >> b;
	cout << "a + b = " << a + b << "\n";	
	return 0;
}

string형 변수들은 덧셈연산만 가능하며 두 문자열을 이어붙힌 결과가 나온다. C++ 에서는 string 이라는 문자열 클래스를 지원한다.

3. 산술 연산자

연산자의미
a + ba 와 b를 더한다
a * ba 와 b를 곱한다
a - ba 에서 b를 뺀다
a / ba 를 b로 나눈다
a % ba 를 b로 나눈 나머지
a++1해당 구문이 끝난 뒤, a에 1을 더한다
++a2해당 구문이 시작할 때 a에 1을 더한다
a—1해당 구문이 끝난 뒤, a에서 1을 뺀다
—a2해당 구문이 시작할 때 a에서 1을 뺀다

4. 비트 연산자

비트 연산은 변수를 2진수로 변환시켜 각 자릿수별로 적용되는 연산을 의미한다.

연산자의미
a ^ ba xor b
a | ba or b
a & ba and b
~anot a
a << ba 를 b 횟수만큼 왼쪽으로 Shift 연산
a >> ba 를 b 횟수만큼 오른쪽으로 Shift 연산
Shift 연산이란 말 그대로 이진수를 해당 방향으로 밀어버리는 연산을 의미한다.
예시로 5 << 2이 된다. 반대로 5 >> 2이 된다.
단순하게 표현하면 a << b이고 a >> b`다.

4. 개행 문자

콘솔 입출력에서 개행을 출력하고 싶다면 \n을 출력하면 된다.


Footnotes

  1. 후치 연산자 2

  2. 전치 연산자 2