Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- JSON
- 혼자 공부하는 C언어
- 알기쉬운 알고리즘
- stream
- C 언어 코딩 도장
- datastructure
- 이스케이프 문자
- 윤성우의 열혈 자료구조
- Algorithm
- C programming
- insertion sort
- 윤성우 열혈자료구조
- R
- list 컬렉션
- buffer
- coding test
- Serialization
- 이것이 자바다
- Stack
- Graph
- 메모리구조
- Selection Sorting
- s
Archives
- Today
- Total
Engineering Note
55.기차운행(stack 응용) 본문
it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비

1. 초기



2. 최적화

문제해결 아이디어(초기)
- 입력된 값을 배열에 저장
- 문제 해결을 위한 반복문 루프
- 입력 된 숫자의 개수 N보다 배열의 인덱스가 작으면 Push 하고 'P'문자 저장
- 불가능 조건 체크 더 이상 Push 할 값이 없고 stack에 남아 있는 값이 교차로 B로 가야할 값보다 클경우 불가능
- -교차로 stack Pop 반복문
- 현재 stack이 비어 있는 상태라면 Pop하지말고 다시 Push할 값 찾으러 break;
- 교차로 B로 가야할 check 값 과 stack의 top의 값이 같으면 Pop 하고 'O'문자 저장 아니면 break;
- 출력할 ch문자 P,O가 입력된 숫자의 2배 짝이 맞다면 가능한 상태로 break;
문제해결 아이디어(최적화)
- 교차로 stack 중심에서 생각하기
- 숫자 하나 입력받고 바로 stack에 넣은 후 1,2,3,4,... 순서로 check 하며 교차로 B로 Pop하기 check 순서에 맞지 않으면 다시 숫자 입력 받기
- 위 과정을 모두 거쳤을 때 stack에 값이 남아 있다면(check 순서에 맞지 않고 Push 받을 값이 더 이상 없다면 impossible한 경우)
'Problem Solving > Olympiad in Informatics' 카테고리의 다른 글
| 10. 자릿수의 합 (0) | 2021.01.15 |
|---|---|
| 9. 모두의 약수 (0) | 2021.01.13 |
| 54. 올바른 괄호(stack) (0) | 2021.01.08 |
| 8.올바른 괄호 (0) | 2021.01.08 |
| 7.영어 단어복구 (0) | 2021.01.06 |
Comments