0x08강에서 배운 점

Hyemin Seo·2024년 6월 28일
0
post-thumbnail

바킹독님의 실전 알고리즘 강의 0x08를 들으며 배운 점을 정리해보겠다.

스택 괄호쌍 문제 유형화 가능해짐

코코넛 문제에서부터 골머리를 앓았던 괄호쌍 유형, 드디어 해법을 정리했다. 체화시켜야 한다!

특히 boj4949번: 균형잡힌 세상 문제 - 정답 코드에서 배운 점은 getline(cin, s); 익숙하게 하자는 것이다.

그리고 getline과 종료조건을 어떻게 하면 간단하게 표현할까 고민했는데 정답 코드에서 wow!포인트가 나옴

while(1){
	string s;
    getline(cin,s);
    if(s==".") break;
    ...
}

stack 생성을 제멋대로 만들지 말자.

이번 같은 경우에 while문 안에서 새롭게 만들었어야 했는데 괜히 밖에 만들어서 stack이 비워지지 않아 에러를 일으킴. 만들 때도 위치를 조심하자.

top함수 주의점

stack의 top 함수의 경우 꼭 empty 함수와 같이 연결시켜서 생각하는 사고의 흐름 기르자. 에러 나기 딱 좋음.

getline과 cin의 혼용시 주의점

boj3986-좋은단어에서 배운 점인데, cin 뒤에 getline을 혼용하게 되면 getline에 개행문자 ('\n')이 들어가게 된다.

이유로는 챗지피티 설명을 인용하겠다.

cin으로 입력을 받은 후 getline을 사용하면, getline 함수가 버퍼에 남아 있는 개행 문자를 만나게 됩니다. 이 경우 getline은 빈 줄을 읽게 되어 빈 문자열을 반환하게 됩니다.

Q. 그럼 cin, cin을 두 번 쓸 때는 그런 문제가 생기지 않나요?
A. 왜냐하면 cin은 입력 버퍼에 남아 있는 공백 문자를 무시하고 다음 유효한 입력을 기다리기 때문입니다.

profile
친해져요

2개의 댓글

comment-user-thumbnail
2024년 7월 3일

얼른 다음 글 써주세요

1개의 답글