안녕하세요, 여행벌입니다.
C언어로 쉽게 풀어 쓴 자료구조 4장 - 스택 연습문제 풀이입니다.
01 ~ 09 번은 손으로 10 ~ 16번은 직접 코드 구현으로 문제를 해결했습니다.
틀린 부분은 같이 댓글로 얘기해보면 좋을 것 같습니다!
[ 10번 ]
Stack은 LIFO 구조로 입력이 들어오는 순서대로 Push 한 다음에, Pop을 하면서 출력하면 반대로 출력이 됩니다.
[ 11번 ]
Stack을 활용한 괄호 짝 찾기 문제의 활용 버전으로 ' ( ' 를 만나면 Stack에 Push하고 ' ) ' 를 만나면 Stack의 Top 에 있는 ' ( ' 와 짝을 맺어준다.라는 기본 개념을 이용하면 됩니다.
' ( ' 마다 차례대로 번호를 부여하며 Stack 에 Push 하고 ' ) ' 를 만나면 Stack의 top이 지금 만난 ' ) '와 짝인 ' ( ' 이므로 ' ( ' 의 번호를 출력하며 Pop을 진행하면 됩니다.
[ 12번 ]
왜... 스택을 이용해야 되는지 이해할 수 없는 문제지만... 억지로 스택을 사용해보았습니다.
Input으로 들어온 문자 배열을 맨 앞에서부터 순회할 것입니다.
1. 내가 가리키고 있는 문자 now에서 대/소문자가 now와 같은 경우까지 문자 배열을 순회하며 count해준다.
2. now와 다른 문자가 나오면 지금까지의 count와 now를 Stack1에 Push해줍니다.
( 이때, 대문자면 소문자로 바꿔서 Push해줍니다. )
3. 문자 배열 순회가 끝났으면 Stack1에 저장된 원소들을 Pop하며 Stack2에 Push 해줍니다.
( 역순 출력을 위해서 )
4. Stack2를 Pop하며 출력합니다.
[ 13번 ]
이 문제도... 왜 스택을 이용해야 되는지 이해할 수 없는 문제다.
12번과 마찬가지로 Input으로 들어온 문자 배열을 맨 앞에서부터 순회하며 Stack1에 저장하고,
Stack1에 저장된 값들을 Pop하며 Stack2에 다시 저장해 출력을 하면 된다.
[ 15번 ]
좌표를 저장해 줄 element 를 선언하고 element 배열에 경로를 저장해나가면 된다.
[ 16번 ]
Stack에 문자 배열을 입력하고 Pop을 하면 문자배열을 역순으로 참조할 수 있다.
Stack에 문자배열을 소문자, 대문자를 다 소문자로 입력하고 문자배열을 순회하며 Stack이랑 비교하면 된다.
'Computer Science > C언어로쉽게풀어쓴자료구조' 카테고리의 다른 글
[C언어로 쉽게 풀어 쓴 자료구조] 6장 연습문제 해답 - travelbeeee (19) | 2020.01.07 |
---|---|
[C언어로 쉽게 풀어 쓴 자료구조] 5장 연습문제 해답 - travelbeeee (14) | 2020.01.03 |
[C언어로 쉽게 풀어 쓴 자료구조] 3장 연습문제 해답 - travelbeeee (30) | 2019.12.03 |
[C언어로 쉽게 풀어 쓴 자료구조] 2장 연습문제 해답 - travelbeeee (14) | 2019.11.19 |
[C언어로 쉽게 풀어 쓴 자료구조] 1장 연습문제 해답 - travelbeeee (54) | 2019.11.18 |