바킹독님의 실전 알고리즘 강의 0x08를 들으며 배운 점을 정리해보겠다.
코코넛 문제에서부터 골머리를 앓았던 괄호쌍 유형, 드디어 해법을 정리했다. 체화시켜야 한다!
특히 boj4949번: 균형잡힌 세상 문제 - 정답 코드에서 배운 점은 getline(cin, s); 익숙하게 하자는 것이다.
그리고 getline과 종료조건을 어떻게 하면 간단하게 표현할까 고민했는데 정답 코드에서 wow!포인트가 나옴
while(1){
string s;
getline(cin,s);
if(s==".") break;
...
}
이번 같은 경우에 while문 안에서 새롭게 만들었어야 했는데 괜히 밖에 만들어서 stack이 비워지지 않아 에러를 일으킴. 만들 때도 위치를 조심하자.
stack의 top 함수의 경우 꼭 empty 함수와 같이 연결시켜서 생각하는 사고의 흐름 기르자. 에러 나기 딱 좋음.
boj3986-좋은단어에서 배운 점인데, cin 뒤에 getline을 혼용하게 되면 getline에 개행문자 ('\n')이 들어가게 된다.
이유로는 챗지피티 설명을 인용하겠다.
cin으로 입력을 받은 후 getline을 사용하면, getline 함수가 버퍼에 남아 있는 개행 문자를 만나게 됩니다. 이 경우 getline은 빈 줄을 읽게 되어 빈 문자열을 반환하게 됩니다.
Q. 그럼 cin, cin을 두 번 쓸 때는 그런 문제가 생기지 않나요?
A. 왜냐하면 cin은 입력 버퍼에 남아 있는 공백 문자를 무시하고 다음 유효한 입력을 기다리기 때문입니다.
얼른 다음 글 써주세요