| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 유니티오류
- 코딩
- 계획노션
- 백준11382
- CPP
- 노션자동화
- 백준c언어
- 게임
- 유니티에셋
- java
- C++
- 백준7287
- 백준씨언어
- 백준정답
- 백준
- 유니티
- C언어
- coding
- 자바
- 씨언어
- 5000port
- 백준18108
- 자바설치오류
- 랜더링오류
- 백준단계별로풀어보기
- 백준10699
- 백준단계별풀기
- killport
- 유니티렌더링
- 노션커스텀
- Today
- Total
동동 개발
[C++] 백준 단계별로 풀기 1단계 : 입출력과 사칙연산 (총 13문제) 본문
게임 개발을 하려면 C++에 대한 이해가 필수이지요...
C언어의 기초적인 문법 + 프로그래밍 알고리즘은 어느정도 알고 있으니 C++ 책과 공부를 병행하면서 백준 단계별 풀기로 공부해볼까 한다.
차차 공부하면서 문법이나 자료구조를 정리합시다.
레츠 기니~~!!!
✏️ 2557번 : Hello World
#include <iostream>
int main(){
std::cout << "Hello" << std::endl << "World!";
}
✏️ 1000번 : A+B
#include <iostream>
using namespace std;
int main(){
int a, b;
cin >> a >> b;
cout << a+b << endl;
return 0;
}
cin과 cout을 사용하여 입출력을 다루는 간단한 문제들이다.
✏️ 1001번 : A-B
#include <iostream>
using namespace std;
int main(){
int a, b;
cin >> a >> b;
cout << a-b << endl;
return 0;
}
✏️ 10998번 : A*B
#include <iostream>
using namespace std;
int a, b;
int main(){
cin >> a >> b;
cout << a*b << endl;
return 0;
}
✏️ 1008번 : A/B
#include <iostream>
using namespace std;
int main(){
double a,b;
cin >> a >> b;
cout.precision(10);
cout << (double)a/b << endl;
return 0;
}
int/Int는 정수형 나눗셈이므로 결과값이 정수(소숫점 아래 날라감)가 나온다.
따라서 int/double 혹은 double/double로 나눗셈을 해서 결과값이 소수가 나오게 해주자.
이때, 소숫점 출력 자릿수를 조절해주는 함수 cout.precision()를 사용한다.
std의 setprecision()도 있다!
✏️ 10869번 : 사칙연산
#include <iostream>
using namespace std;
int main()
{
int a,b;
cin >> a >> b;
cout << (a+b) <<endl;
cout << (a-b) <<endl;
cout << (a*b) <<endl;
cout << (a/b) <<endl;
cout << (a%b) <<endl;
return 0;
}
✏️ 10926번 : ??!
// 1. 간단하게 문자 뒤에 출력
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cin >> name;
cout << name <<"??!"<<endl;
return 0;
}
// 2. string의 append 함수 사용하기
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
string str = "??!";
cin >> name;
name.append(str);
cout << name <<endl;
return 0;
}
string.append() 함수라는 게 있어서 써보고 싶어서 이 방법으로도 해봤다.
이 함수를 쓰려면 #include <string> 라이브러리를 당연히 추가해줘야겠죠~
✏️ 18108번 : 1998년생인 내가 태국에선 2541년생?!
#include <iostream>
using namespace std;
int main()
{
int buda_year;
cin >> buda_year;
cout << buda_year-543 << endl;
return 0;
}
간단한 계산 문제다.
✏️ 10430번 : 나머지
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
cout << (a+b)%c << endl;
cout << ((a%c)+(b%c))%c << endl;
cout << (a*b)%c << endl;
cout << ((a%c)*(b%c))%c << endl;
return 0;
}
✏️ 2588번 : 곱셈
자릿수 별로 숫자를 뽑아낼 때, 나눗셈 연산자 사용에 유의하자.
#include <iostream>
using namespace std;
int a, b;
int main(){
cin >> a >> b;
cout << a*(b%10) << endl;
cout << a*((b%100)/10) << endl;
cout << a*(b/100) << endl;
cout << a*b << endl;
return 0;
}
'/' 연산자 : 몫
'%' 연산자 : 나머지
임에 유의하자.
✏️ 11382번 : 꼬마 정민
#include <iostream>
using namespace std;
int main()
{
long a, b, c;
cin >> a >> b >> c;
cout << a+b+c << endl;
return 0;
}
✏️ 10171번 : 고양이 ( \, ' 등의 문자에 주의하며 고양이를 출력하는 문제)
#include <iostream>
using namespace std;
int main()
{
cout << "\\ /\\ " << endl;
cout << " ) ( \')" << endl;
cout << "( / )" << endl;
cout << " \\(__)|" << endl;
return 0;
}
쉬워보이지만 생각 없이 코드를 치면 실패하는 문제다.
이스케이프 시퀀스인 \(=₩)(백슬래쉬)에 주의해야 한다.
컴퓨터를 제어하는 목적으로 사용되는 특수문자이기 때문에, 백슬래쉬를 문자로 인식하려면 백슬래시뒤에 백슬래쉬를 하나 더 붙여주는 방법을 썼다. (\\)
참고: https://beelee.tistory.com/20
C++ 기초 명령어 [2.2 데이터의 입력과 출력] [이스케이프 시퀀스]
"C++ 기초 명령어" 챕터에서는 C++ 프로그래밍을 하는데 있어 가장 기초적으로 사용되는 명령어들을 몇가지 알아볼 예정입니다. 아래의 순서대로 챕터가 진행될 예정입니다. 더보기 - [2.1. 변수와
beelee.tistory.com
✏️ 10172번 : 개 (", `, \ 등의 문자에 주의하며 개를 출력하는 문제)
이전 문제의 \(백슬래시)에 이어, 특수문자 '(작은 따옴표)와 "(큰따옴표)를 문자열로 출력할 때 주의해야하는 문제이다.
이들은 문법적 기능을 하는 특수문자들이기 때문에...
" ' \ 를 문자로 출력할 땐, 앞에 \(백슬래시)를 넣어 이스케이프 시켜주자.
더하여, 다른 블로그를 찾아보니 C++에 새로운 기능인 Raw 문자열이 있다고 한다.
str = R"(원하는 문자열 삽입)"
로 스트링 리터럴은 R"( )" << 이런 모양이고, 괄호 안에 원하는 내용을 넣으면 이스케이프 문자도 전부 문자열로 인식해준다.
줄바꿈도 '\n'을 사용하지 않고, 그냥 엔터키로 넣으면 줄바꿈이 되어 출력된다.
str = R"(엔터키도
그대로 줄바꿈으로인식합니다.)";
참고: https://orblangjeee.tistory.com/8
https://todamfather.tistory.com/85
그럼 개 문제도 이렇게 풀면 되겠군! 하고 새로 배운 Raw 문자열을 적용시켜 봤더니..

에러가 뜬다.
잘 보니, 내가 출력하는 문자열에 )" 가 있어서 여기서 raw 문자열이 끊긴다고 인식한 것이다. (이것까지 걸러준다고? 문제를 너무 잘 만드셨다...)
그래서 또 찾아봤더니 delimiter(구분자)를 쓰면 된다고 한다. 나만의 기준을 넣어두는 셈이다.
str = R"TAG( )TAG"
구분자를 적용해보면,

아주 잘 출력이 된다!
최종 코드:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1 =
R"TAG(|\_/|
|q p| /}
( 0 )"""\
|"^"` |
||_/=\\__|)TAG";
cout << str1 << endl;
return 0;
}
기본적이지만 꼭 알아야하는 것들을 잘 짚고 넘어가는 것 같아서 기분이 좋다.

1단계 모두 클리어~~
'C++ 공부' 카테고리의 다른 글
| [C++] 백준 단계별로 풀기 4단계 : 1차원 배열 (총 10문제) (0) | 2026.02.19 |
|---|---|
| [C++] 백준 단계별로 풀기 3단계 : 반복문 (총 12문제) (0) | 2026.02.18 |
| [C++] 백준 단계별로 풀기 2단계 : 조건문 (총 7문제) (0) | 2026.02.17 |
| C++의 입출력: cin, cout, endl (0) | 2026.02.15 |
| C++와 C언어 차이 TOP7(코딩테스트 대비) (0) | 2026.02.13 |