하루의 PS 치팅 페이퍼(정리중)
2021/12/01

이 글에 앞서

  • 문제 풀고 책이나 인터넷에서 정보를 찾고 하다가 발견한 사실이지만, 잘못된 내용이 있을 수 있으며 의도한 기능과 다르게 쓸 수도 있으니 그런 내용이 보인다면 둥글게 둥글게 알려주세요.😇
  • using namespace std이 적용된 상태로 설명을 합니다.
  • 진짜로 노션에 써진 TIL들 정리한 것입니다… 개인 소장용임


#설정

Atom C++17 세팅

c++17 setting at Atom

  • PackagesGpp Compiler
  • C++ Compiler Options: -std=c++17

템플릿

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using pii = pair<int, int>;
using tii = tuple<int, int, int>;
using pll = pair<ll, ll>;
using tll = tuple<ll, ll, ll>;
/* [💭] [💡] [🎈] [🌙] */

int main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);

return 0;
}
  • 시프트의 저 풍선 이모지가 마음에 들어와서 들고와서 쓰는 중// 감사합니다🙇‍♂️🙇‍♀️
  • <bits/stdc++.h> : 괜찮은 헤더들 다 들어가있음… 이거 조아…
  • using A = B
    • B를 A라고 쓰겠다
    • typedef 상위호환이라고 함
  • ios~
    • cin, cout을 빠르게 하도록 했던 걸로 기억


#입/출력

endl

1
2
cout << ans << endl; // too slow...
cout << ans << "\n"; // GOOOOOOD

getline() / gets()

1
2
string s;
getline(cin, s);
  • 한 줄 통으로 입력 받으려면 getline이용
  • 개행(\n)될 때까지 입력을 받는다
  • cin만 쓰면 스페이스 바에서 잘린다
    • Haru is running.를 입력하면 Haru만 입력 받게 됨
1
2
char s[100];
gets(s);
  • scanf(), printf()를 사용하겠다라는 굳은 마음이 있으면 gets()을 사용하면 되는데 이게 맞나…. 아무튼 나는 이렇게 쓰는데 실무에서는 이렇게 쓰면 안될 것 같음?아닌가?
  • 문자열 저장하는 것 처럼 끝에 \0를 붙임

getchar()

  • getchar()사용시 공백(' ')과 \n도 읽는다.
  • scanf()에서 %c쓸 때 유용하게 쓸 수 있다
  • 그런데 string에서 cin >> a[i]가 나는 더 편하다

scanf() / `printf()

1
scanf("%1d", &x);
  • 이러면 한글자만 받을 수 있다
1
printf("%02d", x);
  • 202 와 같이 2자리 앞에 0붙여서 해줌