Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[투포인터] 2116020 전유진 #323

Open
wants to merge 129 commits into
base: 2116020-전유진
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
d24d030
[스택,큐,덱] 0228
SeoYeomm Feb 28, 2023
377f31d
[스택,큐,덱] 0228
SeoYeomm Feb 28, 2023
2bdc4d5
[스택,큐,덱] 0228
SeoYeomm Feb 28, 2023
2acfa16
[2월 28일] 스택, 큐, 덱 과제 코드 업로드
dooli1971039 Feb 28, 2023
2a37dc8
[2월 28일] 스택, 큐, 덱 리드미 수정
dooli1971039 Feb 28, 2023
61b8919
[3월 1일] 정수론 강의 자료 업로드
jk0527 Feb 28, 2023
895ead9
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Feb 28, 2023
bcc5c66
[스택, 큐, 덱] 0301-추가제출
SeoYeomm Mar 1, 2023
8cb19f5
[3월 3일] 정수론 리드미 추가
jk0527 Mar 3, 2023
ebb04ba
[3월 3일] 정수론 라이브 코딩 코드 업로드
jk0527 Mar 3, 2023
58f91b5
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 3, 2023
c7865ff
[3월 3일] 정수론 리드미 수정
jk0527 Mar 3, 2023
a3a091f
[3월 3일] 리드미 수정
jk0527 Mar 3, 2023
775f891
[3월 3일] 리드미 수정
jk0527 Mar 3, 2023
555c9e4
[3월 7일] 정수론 과제 코드 업로드
jk0527 Mar 7, 2023
f2dd50c
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 7, 2023
208f945
[3월 7일] 브루트 포스 강의 자료 업로드
jk0527 Mar 7, 2023
2558639
[3월7일] 정수론 리드미 수정
jk0527 Mar 7, 2023
2d0cb7f
[3월7일] 정수론 리드미 수정
jk0527 Mar 7, 2023
b713a4e
[3월 7일] 정수론 리드미 수정
jk0527 Mar 7, 2023
05c6c61
[3월 7일] 브루트 포스 리드미 추가
jk0527 Mar 7, 2023
32170f8
[3월 7일] 리드미 수정
jk0527 Mar 7, 2023
7f7c98b
Merge pull request #73 from SeoYeomm/02-assignment
kimyu0218 Mar 7, 2023
53fb679
Revert "[스택,큐,덱] 2176255 이서연"
kimyu0218 Mar 7, 2023
fed90e9
Merge pull request #110 from Altu-Bitu-Official/revert-73-02-assignment
kimyu0218 Mar 7, 2023
5feb38f
[2월 28일] 스택, 큐, 덱 과제 코드 업로드
jk0527 Mar 9, 2023
078b203
[2월 28일] 스택, 큐, 덱 과제 코드 업로드
jk0527 Mar 9, 2023
cda3b3d
[3월 10일] 브루트 포스 강의 자료 업로드
jk0527 Mar 10, 2023
de45a70
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 10, 2023
a237d5c
[3월 10일] 브루트 포스 라이브 코딩 코드 업로드
jk0527 Mar 10, 2023
f78d004
[3월 10일] 브루트 포스 리드미 수정
jk0527 Mar 10, 2023
f43f6a2
[3월 10일] 브루트 포스 라이브 코딩 코드 수정
jk0527 Mar 10, 2023
bc69191
[3월 10일] 브루트 포스 라이브 코딩 코드 수정
jk0527 Mar 10, 2023
4a52145
[3월 10일] 브루트 포스 라이브 코딩 코드 수정
jk0527 Mar 10, 2023
6d0ffde
[브루트포스] 0314
SeoYeomm Mar 14, 2023
35d6e54
[3월 14일] 브루트 포스 과제 코드 업로드
jk0527 Mar 14, 2023
e958a9d
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 14, 2023
3fa448b
[3월 14일] 브루트 포스 리드미 수정
jk0527 Mar 14, 2023
e556da1
[3월 15일] 우선순위 큐 강의 자료 업로드
jk0527 Mar 15, 2023
cfdbea8
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 15, 2023
f70962e
[3월 15일] 우선순위 큐 리드미 추가
jk0527 Mar 15, 2023
8c63ada
[3월 15일] 리드미 수정
jk0527 Mar 15, 2023
0262c41
[브루트포스] 0316-추가제출
SeoYeomm Mar 16, 2023
c795e2b
[3월 17일] 우선순위 큐 라이브 코딩 코드 업로드
jk0527 Mar 17, 2023
3e2e01a
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 17, 2023
67951c1
[3월 17일] 우선순위 큐 리드미 수정
jk0527 Mar 17, 2023
c7495a1
[3월 17일] 우선순위 큐 라이브 코딩 코드 업로드
jk0527 Mar 17, 2023
af8ae72
[3월 21일] 우선순위 큐 강의 자료 수정
jk0527 Mar 21, 2023
7b747c0
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 21, 2023
018f0e7
[우선순위 큐] 0321
flowing1ife Mar 21, 2023
a8f112d
[3월 21일] 우선순위 큐 과제 코드 업로드
jk0527 Mar 21, 2023
e465c86
[3월 21일] 우선순위 큐 리드미 수정
jk0527 Mar 21, 2023
5559bc4
[3월 21일] 그리디 알고리즘 강의 자료 업로드
jk0527 Mar 21, 2023
56b053a
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 21, 2023
631adae
[3월 21일] 그리디 알고리즘 리드미 추가
jk0527 Mar 21, 2023
e149bd1
[3월 21일] 우선순위 큐 리드미 수정
jk0527 Mar 21, 2023
03469e9
[3월 21일] 리드미 수정
jk0527 Mar 21, 2023
e595cd1
Merge branch 'main' into assignment-05
flowing1ife Mar 24, 2023
bf69401
[우선순위 큐] 0324
flowing1ife Mar 24, 2023
c420eb5
Merge branch 'assignment-05' of https://github.com/flowing1ife/Altu-B…
flowing1ife Mar 24, 2023
4548173
[3월 24일] 폴더 이름 수정
jk0527 Mar 24, 2023
11f69fe
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 24, 2023
cb94783
Merge pull request #127 from SeoYeomm/04-assignment
Dong-droid Mar 24, 2023
eef9ebd
[3월 24일] 그리디 알고리즘 라이브 코딩 코드 업로드
jk0527 Mar 24, 2023
d4cd98f
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 24, 2023
ba2658c
Revert "[브루트포스] 2176255 이서연"
Dong-droid Mar 24, 2023
6ee3748
[3월 27일] 정렬, 맵, 셋 강의 자료 업로드
jk0527 Mar 27, 2023
adc5772
Merge pull request #186 from Altu-Bitu-Official/revert-127-04-assignment
Dong-droid Mar 27, 2023
fb21848
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 27, 2023
1f314af
[3월 27일] 브루트 포스 과제 코드 수정
jk0527 Mar 27, 2023
54257bd
[3월 28일] 그리디 알고리즘 강의 자료 수정
jk0527 Mar 28, 2023
188da6f
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 28, 2023
8f3851e
[3월 28일] DFS&BFS 강의 자료 업로드
jk0527 Mar 28, 2023
c0525c3
[3월 28일] 그리디 알고리즘 과제 코드 업로드
jk0527 Mar 28, 2023
a377493
[3월 28일] DFS & BFS 리드미 업로드
jk0527 Mar 28, 2023
66cf885
[3월 28일] 리드미 수정
jk0527 Mar 28, 2023
01a9b9d
[3월 28일] DFS & BFS 리드미 수정
jk0527 Mar 28, 2023
19f02d1
[3월 28일] 그리디 알고리즘 리드미 수정
jk0527 Mar 28, 2023
206f595
[3월 31일] DFS & BFS 라이브 코딩 코드 업로드
jk0527 Mar 31, 2023
433c4a8
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Mar 31, 2023
da5271e
[3월 31일] DFS & BFS 리드미 수정
jk0527 Mar 31, 2023
536fa1f
Merge pull request #162 from flowing1ife/assignment-05
dbswn Apr 1, 2023
996a67f
[4월 4일] DFS & BFS 과제 코드 업로드
jk0527 Apr 4, 2023
14654be
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Apr 4, 2023
9244036
[4월 4일] DFS & BFS 리드미 수정
jk0527 Apr 4, 2023
dce92a3
[4월 4일] 그리디 알고리즘 리드미 수정
jk0527 Apr 4, 2023
eeaa561
Revert "Merge pull request #162 from flowing1ife/assignment-05"
dbswn Apr 4, 2023
16ef758
[4월 5일] 백트래킹 리드미 업로드
jk0527 Apr 5, 2023
7c23d6a
[4월 5일] 백트래킹 강의 자료 업로드
jk0527 Apr 5, 2023
56fb9fb
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Apr 5, 2023
d318e76
[4월 5일] 리드미 수정
jk0527 Apr 5, 2023
bc1dcb3
[4월 7일] 백트래킹 라이브 코딩 코드 업로드
jk0527 Apr 7, 2023
e940e84
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Apr 7, 2023
93b81ee
[4월 7일] 백트래킹 라이브 코딩 코드 업로드
jk0527 Apr 7, 2023
a18c1e1
[4월 7일] 백트래킹 리드미 수정
jk0527 Apr 7, 2023
eefb38a
[4월 7일] 우선순위 큐 과제 코드 수정
jk0527 Apr 7, 2023
afe470f
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Apr 7, 2023
a7ff2a5
[4월 8일] 백트래킹 리드미 수정
jk0527 Apr 8, 2023
de9881a
[4월 12일] 동적 계획법 강의 자료 업로드
jk0527 Apr 12, 2023
8ef72d6
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Apr 12, 2023
6223f7e
[4월 12일] 동적 계획법 리드미 업로드
jk0527 Apr 12, 2023
da38b52
[4월 14일] 동적 계획법 강의 자료 수정
jk0527 Apr 14, 2023
53b5bfa
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Apr 14, 2023
3a83c8a
[4월 14일] 리드미 수정
jk0527 Apr 14, 2023
149f4c0
[4월 14일] 동적 계획법 라이브코딩 코드 업로드
jk0527 Apr 14, 2023
1d0e018
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 Apr 14, 2023
1bcacb0
[4월 14일] 동적 계획법 리드미 수정
jk0527 Apr 14, 2023
cbdb583
[5월 2일] 동적 계획법 강의자료 수정
jk0527 May 1, 2023
c2091d7
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 May 1, 2023
1b3b114
[5월 2일] 백트래킹 과제 코드 업로드
jk0527 May 1, 2023
86da014
[5월 2일] 동적 계획법 과제 코드 업로드
jk0527 May 1, 2023
bd2b014
[5월 2일] 백트래킹 리드미 수정
jk0527 May 1, 2023
d51f618
[5월 2일] 동적 계획법 리드미 수정
jk0527 May 1, 2023
93c419c
[5월 5일] 이분 탐색 리드미 업로드
jk0527 May 5, 2023
88830b6
[5월 5일] 이분 탐색 강의 자료 업로드
jk0527 May 5, 2023
5a6372c
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 May 5, 2023
ad6eebb
[5월 5일] 이분 탐색 라이브 코딩 코드 업로드
jk0527 May 5, 2023
9f9b791
[5월 5일] 이분 탐색 리드미 수정
jk0527 May 5, 2023
3a55ea1
[5월 5일] 리드미 수정
jk0527 May 5, 2023
cedeb06
[5월 9일] 이분 탐색 과제 코드 업로드
jk0527 May 9, 2023
7699152
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 May 9, 2023
bbfbc93
[5월 9일] 투 포인터 리드미 업로드
jk0527 May 9, 2023
7baa1de
[5월 10일] 이분 탐색 리드미 수정
jk0527 May 10, 2023
b6f7843
[5월 10일] 투 포인터 강의 자료 업로드
jk0527 May 10, 2023
b92e936
Merge branch 'main' of https://github.com/Altu-Bitu-Official/Altu-Bitu-4
jk0527 May 10, 2023
56d70ae
[5월 10일] 리드미 수정
jk0527 May 10, 2023
29ac3db
[0516] 투포인터--푸는 중
YujinJeon888888 May 15, 2023
0ca1cda
[투포인터] 0516 --푸는중
YujinJeon888888 May 16, 2023
9d41240
[투포인터] 0516--푸는중
YujinJeon888888 May 16, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
24 changes: 12 additions & 12 deletions 02_스택, 큐, 덱/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# 스택, 큐, 덱 (Stack Queue, Deque)
# 스택, 큐, 덱 (Stack, Queue, Deque)

[메인으로 돌아가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4)

## 💻 튜터링

### 라이브 코딩

| 문제 번호 | 문제 이름 | 난이도 | 풀이 링크 | 분류 |
| :-----------------------------------------------------------------------: | :----------------------------------------------------------------------: | :-------------------------------------------------------------------------------: | :----------: | :--: |
| 문제 번호 | 문제 이름 | 난이도 | 풀이 링크 | 분류 |
| :-----------------------------------------------------------------------: | :----------------------------------------------------------------------: | :-------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--: |
| <a href="https://www.acmicpc.net/problem/10828" target="_blank">10828</a> | <a href="https://www.acmicpc.net/problem/10828" target="_blank">스택</a> | <img height="25px" width="25px" src="https://static.solved.ac/tier_small/7.svg"/> | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/02_%EC%8A%A4%ED%83%9D%2C%20%ED%81%90%2C%20%EB%8D%B1/%EB%9D%BC%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9/10828.cpp) | 스택 |
| <a href="https://www.acmicpc.net/problem/10845" target="_blank">10845</a> | <a href="https://www.acmicpc.net/problem/10845" target="_blank">큐</a> | <img height="25px" width="25px" src="https://static.solved.ac/tier_small/7.svg"/> | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/02_%EC%8A%A4%ED%83%9D%2C%20%ED%81%90%2C%20%EB%8D%B1/%EB%9D%BC%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9/10845.cpp) | 큐 |
| <a href="https://www.acmicpc.net/problem/10866" target="_blank">10866</a> | <a href="https://www.acmicpc.net/problem/10866" target="_blank">덱</a> | <img height="25px" width="25px" src="https://static.solved.ac/tier_small/7.svg"/> | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/02_%EC%8A%A4%ED%83%9D%2C%20%ED%81%90%2C%20%EB%8D%B1/%EB%9D%BC%EC%9D%B4%EB%B8%8C%20%EC%BD%94%EB%94%A9/10866.cpp) | 덱 |
Expand All @@ -21,18 +21,18 @@

### 필수

| 문제 번호 | 문제 이름 | 난이도 | 풀이 링크 | 분류 |
| :-----------------------------------------------------------------------: | :------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------: | :-------: | :--: |
| <a href="https://www.acmicpc.net/problem/10757" target="_blank">10757</a> | <a href="https://www.acmicpc.net/problem/10757" target="_blank">큰 수 A+B</a> | <img height="25px" width="25px" src="https://static.solved.ac/tier_small/1.svg"/> | [C++]() | 구현 |
| <a href="https://www.acmicpc.net/problem/1158" target="_blank">1158</a> | <a href="https://www.acmicpc.net/problem/1158" target="_blank">요세푸스 문제</a> | <img height="25px" width="25px" src="https://static.solved.ac/tier_small/7.svg"/> | [C++]() | 큐 |
| <a href="https://www.acmicpc.net/problem/4949" target="_blank">4949</a> | <a href="https://www.acmicpc.net/problem/4949" target="_blank">균형잡힌 세상</a> | <img height="25px" width="25px" src="https://static.solved.ac/tier_small/7.svg"/> | [C++]() | 스택 |
| 문제 번호 | 문제 이름 | 난이도 | 풀이 링크 | 분류 |
| :-----------------------------------------------------------------------: | :------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--: |
| <a href="https://www.acmicpc.net/problem/10757" target="_blank">10757</a> | <a href="https://www.acmicpc.net/problem/10757" target="_blank">큰 수 A+B</a> | <img height="25px" width="25px" src="https://static.solved.ac/tier_small/1.svg"/> | [C++[1]](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/02_%EC%8A%A4%ED%83%9D%2C%20%ED%81%90%2C%20%EB%8D%B1/%ED%95%84%EC%88%98/10757_v1.cpp) [C++[2]](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/02_%EC%8A%A4%ED%83%9D%2C%20%ED%81%90%2C%20%EB%8D%B1/%ED%95%84%EC%88%98/10757_v2.cpp) | 구현 |
| <a href="https://www.acmicpc.net/problem/1158" target="_blank">1158</a> | <a href="https://www.acmicpc.net/problem/1158" target="_blank">요세푸스 문제</a> | <img height="25px" width="25px" src="https://static.solved.ac/tier_small/7.svg"/> | [C++](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/02_%EC%8A%A4%ED%83%9D%2C%20%ED%81%90%2C%20%EB%8D%B1/%ED%95%84%EC%88%98/1158.cpp) | 큐 |
| <a href="https://www.acmicpc.net/problem/4949" target="_blank">4949</a> | <a href="https://www.acmicpc.net/problem/4949" target="_blank">균형잡힌 세상</a> | <img height="25px" width="25px" src="https://static.solved.ac/tier_small/7.svg"/> | [C++](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/02_%EC%8A%A4%ED%83%9D%2C%20%ED%81%90%2C%20%EB%8D%B1/%ED%95%84%EC%88%98/4949.cpp) | 스택 |

### 도전

| 문제 번호 | 문제 이름 | 난이도 | 풀이 링크 | 분류 |
| :--------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------: | :-------: | :--: |
| <a href="https://school.programmers.co.kr/learn/courses/30/lessons/42586" target="_blank">프로그래머스</a> | <a href="https://school.programmers.co.kr/learn/courses/30/lessons/42586" target="_blank">기능개발</a> | **Lv.2** | [C++]() | 큐 |
| <a href="https://www.acmicpc.net/problem/1918" target="_blank">1918</a> | <a href="https://www.acmicpc.net/problem/1918" target="_blank">후위 표기식</a> | <img height="25px" width="25px" src="https://static.solved.ac/tier_small/14.svg"/> | [C++]() | 스택 |
| 문제 번호 | 문제 이름 | 난이도 | 풀이 링크 | 분류 |
| :--------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--: |
| <a href="https://school.programmers.co.kr/learn/courses/30/lessons/42586" target="_blank">프로그래머스</a> | <a href="https://school.programmers.co.kr/learn/courses/30/lessons/42586" target="_blank">기능개발</a> | **Lv.2** | [C++](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/02_%EC%8A%A4%ED%83%9D%2C%20%ED%81%90%2C%20%EB%8D%B1/%EB%8F%84%EC%A0%84/%EA%B8%B0%EB%8A%A5%EA%B0%9C%EB%B0%9C.cpp) | 큐 |
| <a href="https://www.acmicpc.net/problem/1918" target="_blank">1918</a> | <a href="https://www.acmicpc.net/problem/1918" target="_blank">후위 표기식</a> | <img height="25px" width="25px" src="https://static.solved.ac/tier_small/14.svg"/> | [C++](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/02_%EC%8A%A4%ED%83%9D%2C%20%ED%81%90%2C%20%EB%8D%B1/%EB%8F%84%EC%A0%84/1918.cpp) | 스택 |

---

Expand Down
78 changes: 78 additions & 0 deletions 02_스택, 큐, 덱/도전/1918.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
#include <iostream>
#include <stack>

using namespace std;

int priority(char ch) { // 연산자 우선순위 반환
switch(ch) {
case '(': return 0;
case '+': case '-': return 1;
case '*': case '/': return 2; // 연산자 순위 가장 높음 (먼저 계산되어야 함)
}
}

string postfix(string input) { // 중위 표기식 -> 후위 표기식
string result = ""; // 후위 표기식
stack<char> op; // 연산자 저장하는 스택

for(int i = 0; i < input.size(); i++) {
char ch = input[i];
switch(ch) {
// 여는 괄호는 무조건 push
case '(':
op.push(ch);
break;

// 닫는 괄호는 여는 괄호를 만날 때까지 pop
case ')':
while(!op.empty() && op.top() != '(') {
result += op.top();
op.pop();
}
op.pop(); // 여는 괄호 제거
break;

// 연산자의 경우, 스택에 들어있는 연산자와 우선순위 비교
case '+': case '-': case '*': case '/':
// 스택에 현재 연산자보다 우선순위가 높은 (=먼저 계산되어야 하는) 연산자가 있는 경우 pop
while(!op.empty() && priority(op.top()) >= priority(ch)) {
result += op.top();
op.pop();
}
op.push(ch); // 현재 연산자 push
break;

// 피연산자는 바로 결과에 추가
default:
result += ch;
}
}

// 스택에 남아있는 연산자 결과에 추가
while(!op.empty()) {
result += op.top();
op.pop();
}
return result;
}

/*
* [중위 표기식 -> 후위 표기식]
* 1. 피연산자는 순서가 변하지 않으므로 바로 결과에 추가한다.
* 2. 연산자는 우선순위에 따라 순서가 변하므로 스택에 잠시 저장한다.
* 3. 스택의 top에 있는 연산자는 우선순위가 제일 높아야 한다.
* 4. 스택의 top에 있는 연산자가 현재 연산자보다 우선순위가 같거나 높으면 스택에서 값을 꺼내야 한다.
* 5. 여는 괄호는 무조건 스택에 넣는다.
* 6. 닫는 괄호가 들어오면 여는 괄호가 나올 때까지 스택에 있는 연산자를 결과에 추가한다.
*/

int main() {
string input; // 입력값 (중위 표기식)

// 입력
cin >> input;

// 연산 & 출력
cout << postfix(input);
return 0;
}
62 changes: 62 additions & 0 deletions 02_스택, 큐, 덱/도전/기능개발.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <cmath>

using namespace std;

queue<int> completionTime(int n, vector<int> progresses, vector<int> speeds) { // 작업별 완료시간 반환
queue<int> q; // 작업 완료시간

for(int i = 0; i < n; i++) {
int remain = 100 - progresses[i]; // 남은 작업량
q.push(ceil((double) remain / speeds[i])); // 완료시간 계산
}
return q;
}

vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;

int n = progresses.size(); // 작업 개수
queue<int> q = completionTime(n, progresses, speeds); // 작업 완료시간

while(!q.empty()) {
int curr_time = q.front(); // 현재 작업의 완료 시간
q.pop();
int cnt = 1; // 현재 작업과 함께 배포될 수 있는 작업 수

// 현재 작업과 함께 배포할 수 있는 작업 세기
// q.front() : 현재 작업보다 뒷순서인 작업의 완료 시간
while(!q.empty() && q.front() <= curr_time) {
q.pop();
cnt++;
}
answer.push_back(cnt);
}
return answer;
}

/*
* 배포 프로세스 : 작업 완료 후 배포
* 1. 작업별 작업 완료 시간을 계산한다.
* 2. 작업 순서대로 배포를 시작한다.
*
* HINT : 뒷 순서의 작업이 앞 순서보다 먼저 개발될 수는 있지만 '먼저 배포될 수는 없다'
* -> 앞 순서의 작업이 먼저 배포되는 (== FIFO) 구조
*/

int main() {
vector<int> progresses = {93, 30, 55};
vector<int> speeds = {1, 30, 5};

// 연산
vector<int> answer = solution(progresses, speeds);

// 출력
for(int i = 0; i < answer.size(); i++) {
cout << answer[i] << ' ';
}
return 0;
}
Empty file.
67 changes: 67 additions & 0 deletions 02_스택, 큐, 덱/필수/10757_v1.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
// 벡터 사용
#include <iostream>
#include <vector>
using namespace std;

/*
매개변수에 &를 붙이면 원본을 참조하게 됩니다.
**이 문제에서는 굳이 참조자를 사용할 필요는 없지만, C++에서는 주로 &를 붙입니다**
*/
int charToint(char ch){
return (ch - '0');
}

vector<int> calcPlus(string &a, string &b) {
int idx_a = a.size() - 1; // 일의 자리 인덱스
int idx_b = b.size() - 1;
bool carry = false;
vector<int> ans;

while (idx_a >= 0 && idx_b >= 0) {
int num = charToint(a[idx_a--]) + charToint(b[idx_b--]); // 문자를 숫자로 바꾸어 더하기, 그리고 인덱스 변경

num += carry; // num에 carry 더해주기. (carry는 어차피 1 아니면 0)
carry = num / 10; // num의 값이 10이상이면 carry가 1, 아니면 0
ans.push_back(num % 10); // 올림을 제외한 값만 스택에 push
}

// a에서 남은 숫자 반영
while (idx_a >= 0) {
int num = charToint(a[idx_a--]);

num += carry;
carry = num / 10;
ans.push_back(num % 10);
}

// 남은 올림 확인
if (carry){
ans.push_back(1);
}

return ans;
}

int main() {
ios::sync_with_stdio(0);
cin.tie(0);

string a, b;
vector<int> ans;

//입력
cin >> a >> b;

//연산
if (a.length() < b.length()) { // b의 길이가 더 길다면
swap(a, b);
}

ans = calcPlus(a, b);

//출력
while (!ans.empty()) {
cout << ans.back();
ans.pop_back();
}
}
61 changes: 61 additions & 0 deletions 02_스택, 큐, 덱/필수/10757_v2.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// 스택 사용
#include <iostream>
#include <stack>
using namespace std;

/*
매개변수에 &를 붙이면 원본을 참조하게 됩니다.
**이 문제에서는 굳이 참조자를 사용할 필요는 없지만, C++에서는 주로 &를 붙입니다**
*/
stack<int> calcPlus(string &a, string &b) {
int idx_a = a.size() - 1; // 일의 자리 인덱스
int idx_b = b.size() - 1;
bool carry = false;
stack<int> ans;

while (idx_a >= 0 && idx_b >= 0) {
int num = (a[idx_a--] - '0') + (b[idx_b--] - '0'); // 문자를 숫자로 바꾸어 더하기, 그리고 인덱스 변경

num += carry; // num에 carry 더해주기. (carry는 어차피 1 아니면 0)
carry = num / 10; // num의 값이 10이상이면 carry가 1, 아니면 0
ans.push(num % 10); // 올림을 제외한 값만 스택에 push
}

// a에서 남은 숫자 반영
while (idx_a >= 0) {
int num = a[idx_a--] - '0';

num += carry;
carry = num / 10;
ans.push(num % 10);
}

// 남은 올림 확인
if (carry)
ans.push(1);

return ans;
}

int main() {
ios::sync_with_stdio(0);
cin.tie(0);

string a, b;
stack<int> ans;

//입력
cin >> a >> b;

//연산
if (a.length() < b.length()) // b의 길이가 더 길다면
swap(a, b);

ans = calcPlus(a, b);

//출력
while (!ans.empty()) {
cout << ans.top();
ans.pop();
}
}
50 changes: 50 additions & 0 deletions 02_스택, 큐, 덱/필수/1158.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#include <iostream>
#include <queue>

using namespace std;

vector<int> josephus(int n, int k) { // 요세푸스 순열 반환
vector<int> result; // 요세푸스 순열
queue<int> q; // 원

for(int i = 1; i <= n; i++) { // 원 초기화
q.push(i);
}

while(!q.empty()) {
for(int i = 0; i < k-1; i++) { // k-1번 pop & push
q.push(q.front());
q.pop();
}

// k번째 사람 pop 후 순열에 추가
result.push_back(q.front());
q.pop();
}
return result;
}

/*
* 원을 따라 k번째 사람을 제거한다.
* 1. k번째 사람이 아닌 사람은 원의 맨 뒤로 보낸다.
* 2. k번째 사람은 원에서 제거한다.
*/

int main() {
int n, k;
queue<int> q;

// 입력
cin >> n >> k;

// 연산
vector<int> result = josephus(n, k);

// 출력
cout << "<" << result[0];
for(int i = 1; i < n; i++) {
cout << ", " << result[i];
}
cout << ">";
return 0;
}
Loading