본문 바로가기

C++22

[C || C++] 입력 받은 대로 출력하는 방법 (BAEKJOON 11718번 문제) 알고리즘 문제를 풀다보면 한 줄의 문자열을 모두 입력받아야 하는 경우가 있다. 이번에 백준 사이트에서 문제를 풀다보니, 관련 문제가 있어서 문제도 풀겸 정리도 하려고 한다. 물론, 문제 내용은 간단하지만, 막상 필요할 때는 생각이 나지 않을 수 있으므로, 알고리즘 테스트나 문제를 풀기 전에 미리 숙지하면 좋지 않을까라는 생각이 드는 내용이다. 1. C 에서 개행 문자 입력까지 문자열 입력 받는 방법. 먼저, C에서는 아래와 같은 방법으로 개행이 있을 때까지 입력 받은 문자열을 저장할 수 있다. 1scanf("%[^\n]s", str);cs 설명 >> [ ]은 scanset character라고 한다. scanset 에 대한 자세한 내용은 다른 포스팅에서 다루기로 하고.. 여기서 사용된 [^\n]은 입력 .. 2018. 10. 14.
[C++] 인라인(inline) 함수를 알아보자! 1. 인라인(inline) 함수란?먼저, 인라인 함수라고 이름을 붙인 의미를 이해해보자. 인라인은 말 그대로 인(in) + 라인(line) 으로 '코드라인 내부에 들어간 함수' 라고 생각하면 될 것 같다. 인라인 함수와 비슷한 기능으로는 C언어에서 매크로 함수가 있었다.혹시, 매크로 함수가 정확히 기억이 나지 않는다면, 다음 링크를 참고해보자![매크로 함수 알아보기] 어쨌든, 비슷한 기능을 하는 매크로 함수가 존재하였는 데, 인라인 함수가 추가된 이유는 뭘까.그러므로, 먼저 매크로 함수의 장/단점을 간단하게 정리해보자. 매크로 함수의 장점은 일반적인 함수에 비해서 실행속도가 더 빠르다는 점이다.반면에 단점으로는 정의하는 것이 어렵고, 복잡한 매크로 형태로 정의하는 것에 한계가 있다는 것이다.간단한 예를 .. 2018. 5. 6.
[STL] STL 반복자 정리 (iterator) 1. STL 반복자란C++를 사용하게 되면, 보통 STL을 사용하게 된다. 이러한 STL을 사용 하게 되면, 자연스럽게 반복자를 사용 하게 되는데..흔히들 iterator라는 키워드로 알고 있을 것이다. STL에서 반복자는 포인터와 비슷하게 동작한다.반복자는 컨테이너에 저장된 원소를 순회하면서 접근하는 방법을 제공한다.또한, 컨테이너와 알고리즘을 하나로 동작하게끔 중간에서 인터페이스 역할을 한다.* 컨테이너 : vector, list, queue, set 등등과 같은 것을 말함.* 알고리즘 : 검색, 삭제, 복사 등등을 말함. STL의 모든 컨테이너는 각자의 반복자를 제공한다. 공통적으로는 멤버 함수 begin()와 end()가 순차열의 시작과 끝을 가리킨다.주의할 점은, 순차열의 시작과 끝에서 끝은 실.. 2018. 4. 29.
[C++] 키워드 constexpr 알아보기 1. constexpr이란. (const와의 차이점..)먼저, 키워드 constexpr은 c++11에서 처음 도입되어, c++14에서 향상되었다. 해당 키워드는 const와 비슷하면서도 다르다고 할 수 있다.(당연히, 그러니까 const가 있어도 새롭게 나온 거겠지만..) 기존의 const는 const로 지정한 변수의 값을 수정하려고 할 때, 컴파일러 오류를 발생하도록 한다.반면에 constexpr도 지정한 변수의 값을 수정하려 할 때 오류를 발생시키지만 컴파일 타임에 오류를 발생 시킨다.즉, const는 런타임에 오류를 확인하는 것이고, constexpr은 컴파일을 할 때 오류를 확인할 수 있는 것이다. 그래서 그런지, 요즘은 constexpr을 더 이용하라고 하는 편인듯?? 물론 c++11 이후의 코.. 2018. 4. 23.