전체 글 465

While문과 EOF

만약 c++에서 while문을 사용하여 변수의 값을 받을 때, 데이터의 갯수가 정해지지 않는다면 어떻게 할까? 별 다른 데이터 갯수의 제한 없이 무한 루프를 사용한다면 자원 활용은 굉장히 비효율적이게 된다. C였다면 EOF를 사용하였을 것이다. C++에서는 간단하게 하기와 같은 로직을 이용하면 된다. #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int a,b = 0; while(cin >> a >> b){ // cin >> a >> b를 작성하면 무한루프가 발생한다. // -1(EOF)를 입력하면 while문을 빠져나오게 된다. // 특정 조건(ex : 0입력시 종료)은 말 그대로 if를..

Cin과 Cout

c++에서 cin과 cout는 입출력 타입을 따로 지정할 필요가 없다. 이 외에도 예외처리가 강하고 기능이 많아서 c++에서는 필수적으로 쓰이는 기능이다. 하지만 scanf, printf보다는 느리다는 단점이 있다. 알고리즘 문제를 풀 경우, 빠르게 연산한 값을 출력하는 것이 관건이므로 시간을 단축시켜야 할 필요가 있다. 백준의 문제를 풀 경우, c언어를 그대로 사용하여 알고리즘 문제를 풀어도 상관은 없다. 만약 c++문법을 그대로 사용하되, scanf나 printf처럼 빠른 계산을 원한다면 하단과 같은 규칙을 갖고 코드를 작성하면 된다. 1. ios_base::sync_with_stdio(false); 2. cin.tie(NULL); 3. endl 대신 "\n" 사용

#10866번 덱 (c++)

큐와 스택의 장점을 합친 알고리즘. 앞/뒤에서 삽입이 가능하고 마찬가지로 앞/뒤에서 제거가 가능하다. #include #include #include using namespace std; int main(void){ /* push_front X: 정수 X를 덱의 앞에 넣는다. push_back X: 정수 X를 덱의 뒤에 넣는다. pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 덱에 들어있는 정수의 개수를 출력한다. empty: 덱이 비어있으면 1을, 아니면 0을 출력한다. fro..

#4604번 Steganography (c++)

#include #include #include #include using namespace std; /* 1. 문자열을 받는다. 이 문자열은 엔터키 또한 받아내야 한다. 2. 스페이스바(공백)를 기준으로 덱에 넣는다. 공백이 홀수개면 0, 짝수개면 1을 넣는다. 3. 해당 덱은 5개씩 끊어내며, 만약 마지막 5의 배수로 받아내지 못할경우 5의 배수로 끝나도록 맨 마지막에 0을 넣는다. 4 해당 덱을 이진수로 변환하여 테이블표대로 출력한다. */ int main(void){ deque dq; while(1) { string temp; getline (cin, temp); if(temp.size()==1&&temp=="#") break; // 아예 종료한다. else if (temp.size()==1&&t..