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

Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)315

[๋ฐฑ์ค€,c++] 14567๋ฒˆ - ์„ ์ˆ˜๊ณผ๋ชฉ ๋ฌธ์ œ 14567๋ฒˆ: ์„ ์ˆ˜๊ณผ๋ชฉ (Prerequisite) 3๊ฐœ์˜ ๊ณผ๋ชฉ์ด ์žˆ๊ณ , 2๋ฒˆ ๊ณผ๋ชฉ์„ ์ด์ˆ˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 1๋ฒˆ ๊ณผ๋ชฉ์„ ์ด์ˆ˜ํ•ด์•ผ ํ•˜๊ณ , 3๋ฒˆ ๊ณผ๋ชฉ์„ ์ด์ˆ˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 2๋ฒˆ ๊ณผ๋ชฉ์„ ์ด์ˆ˜ํ•ด์•ผ ํ•œ๋‹ค. www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int N, M; //N=๊ณผ๋ชฉ์˜ ์ˆ˜, M=์„ ์ˆ˜ ์กฐ๊ฑด์˜ ์ˆ˜ int indegree[500001]; //๋ชจ๋“  ๋…ธ๋“œ์— ๋Œ€ํ•œ ์ง„์ž…์ฐจ์ˆ˜๋Š” 0์œผ๋กœ ์ดˆ๊ธฐํ™” vectorgraph[500001]; //๊ฐ ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ ๊ฐ„์„  ์ •๋ณด๋ฅผ ๋‹ด๊ธฐ ์œ„ํ•œ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ์ดˆ๊ธฐํ™” int result[500001]; //์œ„์ƒ์ •๋ ฌ ์ˆ˜ํ–‰๊ฒฐ๊ณผ๋ฅผ ๋‹ด์„ ๋ฆฌ์ŠคํŠธ void topologySort() { queueq; for (int i = 1; i M; for .. 2021. 11. 11.
[๋ฐฑ์ค€,c++] 14563๋ฒˆ - ์™„์ „์ˆ˜ ๋ฌธ์ œ 14563๋ฒˆ: ์™„์ „์ˆ˜ ์–ด๋– ํ•œ ์ž์—ฐ์ˆ˜ N์— ๋Œ€ํ•ด์„œ N์„ ์ œ์™ธํ•œ ์•ฝ์ˆ˜(์ง„์•ฝ์ˆ˜)์˜ ํ•ฉ์ด N์ด ๋˜๋Š” ์ž์—ฐ์ˆ˜๋ฅผ ์™„์ „์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 6์˜ ์•ฝ์ˆ˜๋Š” 1, 2, 3, 6์ธ๋ฐ 1+2+3์€ 6์ด๊ธฐ ๋•Œ๋ฌธ์— ์™„์ „์ˆ˜์ด๋‹ค. ๋˜ ์ง„์•ฝ์ˆ˜์˜ ํ•ฉ์ด ์ž๊ธฐ ์ž์‹  www.acmicpc.net ์ฝ”๋“œ #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int T; cin >> T; while (T--) { bool check[10001] = { false }; int sum = 0; int N; cin >> N; for (int i = 1; i 2021. 11. 11.
[๋ฐฑ์ค€,c++] 14502๋ฒˆ - ์—ฐ๊ตฌ์†Œ ๋ฌธ์ œ 14502๋ฒˆ: ์—ฐ๊ตฌ์†Œ ์ธ์ฒด์— ์น˜๋ช…์ ์ธ ๋ฐ”์ด๋Ÿฌ์Šค๋ฅผ ์—ฐ๊ตฌํ•˜๋˜ ์—ฐ๊ตฌ์†Œ์—์„œ ๋ฐ”์ด๋Ÿฌ์Šค๊ฐ€ ์œ ์ถœ๋˜์—ˆ๋‹ค. ๋‹คํ–‰ํžˆ ๋ฐ”์ด๋Ÿฌ์Šค๋Š” ์•„์ง ํผ์ง€์ง€ ์•Š์•˜๊ณ , ๋ฐ”์ด๋Ÿฌ์Šค์˜ ํ™•์‚ฐ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ ์—ฐ๊ตฌ์†Œ์— ๋ฒฝ์„ ์„ธ์šฐ๋ ค๊ณ  ํ•œ๋‹ค. ์—ฐ๊ตฌ์†Œ๋Š” ํฌ www.acmicpc.net ์ฝ”๋“œ #include #include #include using namespace std; int N, M, ans; //N=์„ธ๋กœํฌ๊ธฐ, M=๊ฐ€๋กœํฌ๊ธฐ, ans=์•ˆ์ „ ์˜์—ญ์˜ ํฌ๊ธฐ int map[9][9]; int cpy[9][9]; int virus[9][9]; int dx[] = { -1,1,0,0 }; //๋™ ์„œ ๋‚จ ๋ถ int dy[] = { 0,0,1,-1 }; queueq; void bfs() { memcpy(virus, cpy, sizeof(cpy)); //cpy๋กœ.. 2021. 11. 11.
[๋ฐฑ์ค€,c++] 9465๋ฒˆ - ์Šคํ‹ฐ์ปค ๋ฌธ์ œ 9465๋ฒˆ: ์Šคํ‹ฐ์ปค ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” n (1 ≤ n ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ๋‘ ์ค„์—๋Š” n๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ, ๊ฐ ์ •์ˆ˜๋Š” ๊ทธ ์œ„์น˜์— ํ•ด๋‹นํ•˜๋Š” ์Šคํ‹ฐ์ปค์˜ www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int dp[2][100001]; int arr[2][100001]; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int T; cin>>T; while(T--){ int n; cin>>n; for(int i=0; iarr[i][k]; } } dp[0][0] = arr[0][0]; dp[1][0] = arr[1][0.. 2021. 11. 10.
[๋ฐฑ์ค€,c++] 14496๋ฒˆ - ๊ทธ๋Œ€,๊ทธ๋จธ๊ฐ€ ๋˜์–ด ๋ฌธ์ œ 14496๋ฒˆ: ๊ทธ๋Œ€, ๊ทธ๋จธ๊ฐ€ ๋˜์–ด ์ฒซ์งธ ์ค„์— ๋จธํ˜ธ๊ฐ€ ๋ฐ”๊พธ๋ ค ํ•˜๋Š” ๋ฌธ์ž a์™€ b๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์— ์ „์ฒด ๋ฌธ์ž์˜ ์ˆ˜ N๊ณผ ์น˜ํ™˜ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž์Œ์˜ ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 1,000, 1 ≤ M ≤ 10,000) ์ดํ›„ M๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ์น˜ํ™˜ ๊ฐ€๋Šฅํ•œ ๋ฌธ www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int a,b,N,M; int ans=9999; int visited[1001]; vectorv[1001]; void bfs(int start,int depth){ queueq; q.push({start,depth}); visited[start]=1; while(!q.empty()){ int start=q.front().first; int .. 2021. 11. 7.
[๋ฐฑ์ค€,c++] 14495๋ฒˆ - ํ”ผ๋ณด๋‚˜์น˜ ๋น„์Šค๋ฌด๋ฆฌํ•œ ์ˆ˜์—ด ๋ฌธ์ œ 14495๋ฒˆ: ํ”ผ๋ณด๋‚˜์น˜ ๋น„์Šค๋ฌด๋ฆฌํ•œ ์ˆ˜์—ด ํ”ผ๋ณด๋‚˜์น˜ ๋น„์Šค๋ฌด๋ฆฌํ•œ ์ˆ˜์—ด์€ f(n) = f(n-1) + f(n-3)์ธ ์ˆ˜์—ด์ด๋‹ค. f(1) = f(2) = f(3) = 1์ด๋ฉฐ ํ”ผ๋ณด๋‚˜์น˜ ๋น„์Šค๋ฌด๋ฆฌํ•œ ์ˆ˜์—ด์„ ๋‚˜์—ดํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1, 1, 1, 2, 3, 4, 6, 9, 13, 19, ... ์ž์—ฐ์ˆ˜ n์„ ์ž…๋ ฅ๋ฐ›์•„ n๋ฒˆ์งธ ํ”ผ๋ณด www.acmicpc.net ์ฝ”๋“œ #include #include #define ll long long using namespace std; ll dp[200]; int main() { ios_base::sync_with_stdio(false); cin.tie(0); dp[0] = 0; dp[1] = 1; dp[2] = 1; int n; cin >> n; for (int i = 3; i 2021. 11. 7.
[๋ฐฑ์ค€,c++] 14490๋ฒˆ - ๋ฐฑ๋Œ€์—ด 14490๋ฒˆ: ๋ฐฑ๋Œ€์—ด n๊ณผ m์ด :์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. (1 ≤ n, m ≤ 100,000,000) www.acmicpc.net #include #include #include using namespace std; int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b); } int main() { ios_base::sync_with_stdio(false); cin.tie(0); string s, a, b; cin >> s; bool flag = false; for (int i = 0; i < s.length(); i++) { if (s[i] == ':') { flag = true; continue; } else if (!fla.. 2021. 11. 7.
[๋ฐฑ์ค€,c++] 14467๋ฒˆ - ์†Œ๊ฐ€ ๊ธธ์„ ๊ฑด๋„ˆ๊ฐ„ ์ด์œ 1 14467๋ฒˆ: ์†Œ๊ฐ€ ๊ธธ์„ ๊ฑด๋„ˆ๊ฐ„ ์ด์œ  1 3๋ฒˆ ์†Œ๋Š” ์œ„์น˜ 1, 0, 1์—์„œ ๊ด€์ฐฐ๋˜์—ˆ์œผ๋ฏ€๋กœ ๊ธธ์„ ์ตœ์†Œ ๋‘ ๋ฒˆ ๊ฑด๋„œ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 4๋ฒˆ ์†Œ๋„ ๊ธธ์„ ํ•œ ๋ฒˆ ๊ฑด๋„œ์œผ๋ฉฐ, ๋‚˜๋จธ์ง€ ์†Œ๋Š” ๊ธธ์„ ๊ฑด๋„Œ ๊ธฐ๋ก์ด ํ™•์ธ๋˜์ง€ ์•Š๋Š”๋‹ค. www.acmicpc.net #include #include #include using namespace std; vectorv[101]; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int N,cnt=0; cin>>N; for(int i=0; i>a>>b; v[a].push_back(b); } for(int i=1; i 2021. 11. 7.
[๋ฐฑ์ค€,c++] 14425๋ฒˆ - ๋ฌธ์ž์—ด ์ง‘ํ•ฉ 14425๋ฒˆ: ๋ฌธ์ž์—ด ์ง‘ํ•ฉ ์ฒซ์งธ ์ค„์— ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜ N๊ณผ M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ์ง‘ํ•ฉ S์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด๋“ค์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ M๊ฐœ์˜ ์ค„์—๋Š” ๊ฒ€์‚ฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ž์—ด๋“ค์ด ์ฃผ์–ด www.acmicpc.net #include #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int N,M,cnt=0; cin>>N>>M; mapm; for(int i=0; i>inp; m[inp]++; } for(int i=0; i>inp; if(m[inp]==1) cnt++; } cout 2021. 11. 7.