๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/BOJ

(55)
[C++/BOJ] 2164 : ์นด๋“œ2 (Queue) https://www.acmicpc.net/problem/2164 ๋ฐฑ์ค€ ์‹ค๋ฒ„4ํ๋กœ ํ’€์–ด์•ผ ํ•œ๋‹ค๋†“์น˜๊ธฐ ์‰ฌ์šด ์กฐ๊ฑด -> 1์„ ์ž…๋ ฅํ•  ๋•Œ, 0์ด ์•„๋‹Œ 1์ด ๋‚˜์™€์•ผ ํ•จ. (ํ์— ์ตœ์†Œ 1๊ฐœ๋Š” ๋‚จ์•„์•ผ ํ•œ๋‹ค)  ๋‚˜์˜ ํ’€์ด#include#include#includeusing namespace std;int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n = 0; int answer = 0; queue q; cin >> n; for (int i = 1; i
[C++/BOJ] 2493 : ํƒ‘ (Stack) https://www.acmicpc.net/problem/2493 ๋ฐฑ์ค€ ๊ณจ๋“œ5์‰ฝ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด์„œ 2์ค‘๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ผ๋Š”๋ฐ.. ์‹œ๊ฐ„์ดˆ๊ณผ ใ…‹ใ…‹์Šคํƒ์„ ์‚ฌ์šฉํ•ด์„œ ๋‚ฎ์€ ๊ฑด popํ•˜๊ณ , ์ˆ˜์‹  ํƒ‘๋งŒ ๋‚จ๊ฒจ๋‘์–ด์•ผ ํ•œ๋‹ค  ๋‚˜์˜ ํ’€์ด#include#include#include using namespace std;int main() // ์ด์ค‘๋ฐ˜๋ณต๋ฌธ ์“ฐ๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๋‚จ{ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; int height; stack> st; // ์ธ๋ฑ์Šค, ๋†’์ด cin >> n; for (int i = 1; i > height; while(!st.empty()){ if(st.top().second
[C++/BOJ] 11660 : ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ 5 (DP) https://www.acmicpc.net/problem/11660  ๋ฐฑ์ค€ ์‹ค๋ฒ„1๊ทธ๋ƒฅ ํ’€์—ˆ๋‹ค๊ฐ€ ์‹œ๊ฐ„์ดˆ๊ณผ๋‚˜๊ธธ๋ž˜ ๋ญ์ง€ ์‹ถ์—ˆ๋Š”๋ฐ.. dp ๋ฌธ์ œ์˜€๋‹ค ใ…œใ…œindex 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฉด ์ด๊ฒƒ์ €๊ฒƒ ๊ท€์ฐฎ๊ธฐ ๋•Œ๋ฌธ์— index 1๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›์œผ๋ฉด ํŽธํ•˜๋‹ค  ๋‚˜์˜ ํ’€์ด#include#includeusing namespace std;int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; int m; int num; int dp[1025][1025] = {0,}; int x1; int x2; int y1; int y2; cin >> n >> m; for (int i = 1; i > num; dp[i][j] = dp[i - 1][j] + dp[i..
[C++/BOJ] 2169 : ๋กœ๋ด‡ ์กฐ์ข…ํ•˜๊ธฐ (DP) https://www.acmicpc.net/problem/2169 ๋ฌธ์ œ NASA์—์„œ๋Š” ํ™”์„ฑ ํƒ์‚ฌ๋ฅผ ์œ„ํ•ด ํ™”์„ฑ์— ๋ฌด์„  ์กฐ์ข… ๋กœ๋ด‡์„ ๋ณด๋ƒˆ๋‹ค. ์‹ค์ œ ํ™”์„ฑ์˜ ๋ชจ์Šต์€ ๊ต‰์žฅํžˆ ๋ณต์žกํ•˜์ง€๋งŒ, ๋กœ๋ด‡์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์–ผ๋งˆ ์•ˆ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ง€ํ˜•์„ N×M ๋ฐฐ์—ด๋กœ ๋‹จ์ˆœํ™” ํ•˜์—ฌ ์ƒ๊ฐํ•˜๊ธฐ๋กœ ํ•œ๋‹ค. ์ง€ํ˜•์˜ ๊ณ ์ €์ฐจ์˜ ํŠน์„ฑ์ƒ, ๋กœ๋ด‡์€ ์›€์ง์ผ ๋•Œ ๋ฐฐ์—ด์—์„œ ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ, ์•„๋ž˜์ชฝ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์œ„์ชฝ์œผ๋กœ๋Š” ์ด๋™ํ•  ์ˆ˜ ์—†๋‹ค. ๋˜ํ•œ ํ•œ ๋ฒˆ ํƒ์‚ฌํ•œ ์ง€์—ญ(๋ฐฐ์—ด์—์„œ ํ•˜๋‚˜์˜ ์นธ)์€ ํƒ์‚ฌํ•˜์ง€ ์•Š๊ธฐ๋กœ ํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ์ง€์—ญ์€ ํƒ์‚ฌ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”๋ฐ, ๋กœ๋ด‡์„ ๋ฐฐ์—ด์˜ ์™ผ์ชฝ ์œ„ (1, 1)์—์„œ ์ถœ๋ฐœ์‹œ์ผœ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ (N, M)์œผ๋กœ ๋ณด๋‚ด๋ ค๊ณ  ํ•œ๋‹ค. ์ด๋•Œ, ์œ„์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด์„œ, ํƒ์‚ฌํ•œ ์ง€์—ญ๋“ค์˜ ๊ฐ€์น˜์˜ ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋„๋ก ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์—..
[C++/BOJ] 2644 : ์ดŒ์ˆ˜๊ณ„์‚ฐ (๋‹ค์ต์ŠคํŠธ๋ผ) https://www.acmicpc.net/problem/2644 ๋ฌธ์ œ ์šฐ๋ฆฌ ๋‚˜๋ผ๋Š” ๊ฐ€์กฑ ํ˜น์€ ์นœ์ฒ™๋“ค ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์ดŒ์ˆ˜๋ผ๋Š” ๋‹จ์œ„๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋…ํŠนํ•œ ๋ฌธํ™”๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ดŒ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐ๋œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ถ€๋ชจ์™€ ์ž์‹ ์‚ฌ์ด๋ฅผ 1์ดŒ์œผ๋กœ ์ •์˜ํ•˜๊ณ  ์ด๋กœ๋ถ€ํ„ฐ ์‚ฌ๋žŒ๋“ค ๊ฐ„์˜ ์ดŒ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‚˜์™€ ์•„๋ฒ„์ง€, ์•„๋ฒ„์ง€์™€ ํ• ์•„๋ฒ„์ง€๋Š” ๊ฐ๊ฐ 1์ดŒ์œผ๋กœ ๋‚˜์™€ ํ• ์•„๋ฒ„์ง€๋Š” 2์ดŒ์ด ๋˜๊ณ , ์•„๋ฒ„์ง€ ํ˜•์ œ๋“ค๊ณผ ํ• ์•„๋ฒ„์ง€๋Š” 1์ดŒ, ๋‚˜์™€ ์•„๋ฒ„์ง€ ํ˜•์ œ๋“ค๊ณผ๋Š” 3์ดŒ์ด ๋œ๋‹ค. ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์— ๋Œ€ํ•œ ๋ถ€๋ชจ ์ž์‹๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ฃผ์–ด์ง„ ๋‘ ์‚ฌ๋žŒ์˜ ์ดŒ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์‚ฌ๋žŒ๋“ค์€ 1, 2, 3, …, n (1 ≤ n ≤ 100)์˜ ์—ฐ์†๋œ ๋ฒˆํ˜ธ๋กœ ๊ฐ๊ฐ ํ‘œ์‹œ๋œ๋‹ค. ์ž…๋ ฅ ํŒŒ์ผ์˜ ์ฒซ์งธ ์ค„์—๋Š” ์ „์ฒด ์‚ฌ๋žŒ..
[C++/BOJ] 1325 : ํšจ์œจ์ ์ธ ํ•ดํ‚น (BFS/DFS) ๋ฌธ์ œ ํ•ด์ปค ๊น€์ง€๋ฏผ์€ ์ž˜ ์•Œ๋ ค์ง„ ์–ด๋Š ํšŒ์‚ฌ๋ฅผ ํ•ดํ‚นํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ด ํšŒ์‚ฌ๋Š” N๊ฐœ์˜ ์ปดํ“จํ„ฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๊น€์ง€๋ฏผ์€ ๊ท€์ฐฎ๊ธฐ ๋•Œ๋ฌธ์—, ํ•œ ๋ฒˆ์˜ ํ•ดํ‚น์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปดํ“จํ„ฐ๋ฅผ ํ•ดํ‚น ํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํ“จํ„ฐ๋ฅผ ํ•ดํ‚นํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ด ํšŒ์‚ฌ์˜ ์ปดํ“จํ„ฐ๋Š” ์‹ ๋ขฐํ•˜๋Š” ๊ด€๊ณ„์™€, ์‹ ๋ขฐํ•˜์ง€ ์•Š๋Š” ๊ด€๊ณ„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”๋ฐ, A๊ฐ€ B๋ฅผ ์‹ ๋ขฐํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” B๋ฅผ ํ•ดํ‚นํ•˜๋ฉด, A๋„ ํ•ดํ‚นํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์†Œ๋ฆฌ๋‹ค. ์ด ํšŒ์‚ฌ์˜ ์ปดํ“จํ„ฐ์˜ ์‹ ๋ขฐํ•˜๋Š” ๊ด€๊ณ„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ•œ ๋ฒˆ์— ๊ฐ€์žฅ ๋งŽ์€ ์ปดํ“จํ„ฐ๋ฅผ ํ•ดํ‚นํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํ“จํ„ฐ์˜ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์—, N๊ณผ M์ด ๋“ค์–ด์˜จ๋‹ค. N์€ 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜, M์€ 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ์‹ ๋ขฐํ•˜๋Š” ๊ด€๊ณ„๊ฐ€ A B์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๋“ค์–ด์˜ค๋ฉฐ,..
[C++/BOJ] 1012 : ์œ ๊ธฐ๋† ๋ฐฐ์ถ” (BFS/DFS) https://www.acmicpc.net/problem/1012 ๋ฌธ์ œ ์ฐจ์„ธ๋Œ€ ์˜๋†์ธ ํ•œ๋‚˜๋Š” ๊ฐ•์›๋„ ๊ณ ๋žญ์ง€์—์„œ ์œ ๊ธฐ๋† ๋ฐฐ์ถ”๋ฅผ ์žฌ๋ฐฐํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ๋†์•ฝ์„ ์“ฐ์ง€ ์•Š๊ณ  ๋ฐฐ์ถ”๋ฅผ ์žฌ๋ฐฐํ•˜๋ ค๋ฉด ๋ฐฐ์ถ”๋ฅผ ํ•ด์ถฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•œ๋‚˜๋Š” ํ•ด์ถฉ ๋ฐฉ์ง€์— ํšจ๊ณผ์ ์ธ ๋ฐฐ์ถ”ํฐ์ง€๋ ์ด๋ฅผ ๊ตฌ์ž…ํ•˜๊ธฐ๋กœ ๊ฒฐ์‹ฌํ•œ๋‹ค. ์ด ์ง€๋ ์ด๋Š” ๋ฐฐ์ถ”๊ทผ์ฒ˜์— ์„œ์‹ํ•˜๋ฉฐ ํ•ด์ถฉ์„ ์žก์•„ ๋จน์Œ์œผ๋กœ์จ ๋ฐฐ์ถ”๋ฅผ ๋ณดํ˜ธํ•œ๋‹ค. ํŠนํžˆ, ์–ด๋–ค ๋ฐฐ์ถ”์— ๋ฐฐ์ถ”ํฐ์ง€๋ ์ด๊ฐ€ ํ•œ ๋งˆ๋ฆฌ๋ผ๋„ ์‚ด๊ณ  ์žˆ์œผ๋ฉด ์ด ์ง€๋ ์ด๋Š” ์ธ์ ‘ํ•œ ๋‹ค๋ฅธ ๋ฐฐ์ถ”๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์–ด, ๊ทธ ๋ฐฐ์ถ”๋“ค ์—ญ์‹œ ํ•ด์ถฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ํ•œ ๋ฐฐ์ถ”์˜ ์ƒํ•˜์ขŒ์šฐ ๋„ค ๋ฐฉํ–ฅ์— ๋‹ค๋ฅธ ๋ฐฐ์ถ”๊ฐ€ ์œ„์น˜ํ•œ ๊ฒฝ์šฐ์— ์„œ๋กœ ์ธ์ ‘ํ•ด์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ํ•œ๋‚˜๊ฐ€ ๋ฐฐ์ถ”๋ฅผ ์žฌ๋ฐฐํ•˜๋Š” ๋•…์€ ๊ณ ๋ฅด์ง€ ๋ชปํ•ด์„œ ๋ฐฐ์ถ”๋ฅผ ๊ตฐ๋ฐ๊ตฐ๋ฐ ์‹ฌ์–ด ๋†“์•˜๋‹ค. ๋ฐฐ์ถ”๋“ค์ด ๋ชจ์—ฌ์žˆ๋Š” ๊ณณ์—๋Š” ๋ฐฐ์ถ”..
[C++/BOJ] 1417 : ๊ตญํšŒ์˜์› ์„ ๊ฑฐ (์ž๋ฃŒ๊ตฌ์กฐ) https://www.acmicpc.net/problem/1417 ๋ฌธ์ œ ๋‹ค์†œ์ด๋Š” ์‚ฌ๋žŒ์˜ ๋งˆ์Œ์„ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋‹ค์†œ์ด๋Š” ์ด ๊ธฐ๊ณ„๋ฅผ ์ด์šฉํ•ด์„œ 2008๋…„ 4์›” 9์ผ ๊ตญํšŒ์˜์› ์„ ๊ฑฐ๋ฅผ ์กฐ์ž‘ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋‹ค์†œ์ด์˜ ๊ธฐ๊ณ„๋Š” ๊ฐ ์‚ฌ๋žŒ๋“ค์ด ๋ˆ„๊ตฌ๋ฅผ ์ฐ์„ ์ง€ ๋ฏธ๋ฆฌ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ๋ฅผ ์ฐ์„ ์ง€ ์ •ํ–ˆ์œผ๋ฉด, ๋ฐ˜๋“œ์‹œ ์„ ๊ฑฐ๋•Œ ๊ทธ ์‚ฌ๋žŒ์„ ์ฐ๋Š”๋‹ค. ํ˜„์žฌ ํ˜•ํƒ๊ตฌ์— ๋‚˜์˜จ ๊ตญํšŒ์˜์› ํ›„๋ณด๋Š” N๋ช…์ด๋‹ค. ๋‹ค์†œ์ด๋Š” ์ด ๊ธฐ๊ณ„๋ฅผ ์ด์šฉํ•ด์„œ ๊ทธ ๋งˆ์„์˜ ์ฃผ๋ฏผ M๋ช…์˜ ๋งˆ์Œ์„ ๋ชจ๋‘ ์ฝ์—ˆ๋‹ค. ๋‹ค์†œ์ด๋Š” ๊ธฐํ˜ธ 1๋ฒˆ์ด๋‹ค. ๋‹ค์†œ์ด๋Š” ์‚ฌ๋žŒ๋“ค์˜ ๋งˆ์Œ์„ ์ฝ์–ด์„œ ์ž์‹ ์„ ์ฐ์ง€ ์•Š์œผ๋ ค๋Š” ์‚ฌ๋žŒ์„ ๋ˆ์œผ๋กœ ๋งค์ˆ˜ํ•ด์„œ ๊ตญํšŒ์˜์›์— ๋‹น์„ ์ด ๋˜๊ฒŒ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ๋“ํ‘œ์ˆ˜ ๋ณด๋‹ค ๋งŽ์€ ๋“ํ‘œ์ˆ˜๋ฅผ ๊ฐ€์งˆ ๋•Œ, ๊ทธ ์‚ฌ๋žŒ์ด ๊ตญํšŒ์˜์›์— ๋‹น์„ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ..

728x90