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

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

[๋ฐฑ์ค€,c++] 1504๋ฒˆ - ํŠน์ •ํ•œ ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ฌธ์ œ 1504๋ฒˆ: ํŠน์ •ํ•œ ์ตœ๋‹จ ๊ฒฝ๋กœ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N๊ณผ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ E๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ E๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ ์„ธ ๊ฐœ์˜ ์ •์ˆ˜ a, b, c๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ, a๋ฒˆ ์ •์ ์—์„œ b๋ฒˆ ์ •์ ๊นŒ์ง€ ์–‘๋ฐฉํ–ฅ ๊ธธ์ด ์กด www.acmicpc.net ์ฝ”๋“œ #include #include #include #define INF 1e9 //๋ฌดํ•œ๋Œ€๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฐ’์œผ๋กœ 10์–ต์„ ์„ค์ • using namespace std; int N, E, v1, v2; //N=์ •์ ์˜ ๊ฐœ์ˆ˜, E=๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜, v1,v2=๊ฑฐ์ณ์•ผ ํ•˜๋Š” ์ •์  ๋ฒˆํ˜ธ vectorgraph[801]; //๊ฐ ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋…ธ๋“œ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ๋ฐฐ์—ด int d[801]; //์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ” int che.. 2021. 11. 17.
[๋ฐฑ์ค€,c++] 14950๋ฒˆ - ์ •๋ณต์ž ๋ฌธ์ œ 14950๋ฒˆ: ์ •๋ณต์ž ์„œ๊ฐ• ๋‚˜๋ผ๋Š” N๊ฐœ์˜ ๋„์‹œ์™€ M๊ฐœ์˜ ๋„๋กœ๋กœ ์ด๋ฃจ์–ด์กŒ๋‹ค. ๋ชจ๋“  ๋„์‹œ์˜ ์Œ์—๋Š” ๊ทธ ๋„์‹œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋„๋กœ๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋‹ค. ๊ฐ ๋„๋กœ๋Š” ์–‘๋ฐฉํ–ฅ ๋„๋กœ์ด๋ฉฐ, ๊ฐ ๋„๋กœ๋Š” ์‚ฌ์šฉํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋น„์šฉ์ด ์กด์žฌ www.acmicpc.net ์ฝ”๋“œ #include #include #include using namespace std; int N, M, t; //N=๋„์‹œ์˜ ๊ฐœ์ˆ˜(๋…ธ๋“œ), M=๋„๋กœ์˜ ๊ฐœ์ˆ˜(๊ฐ„์„ ), t=์ •๋ณตํ• ๋•Œ๋งˆ๋‹ค ๋“œ๋Š” ๋ˆ„์ ๋น„์šฉ vectoredges; int parent[10001]; int ans = 0, cnt = 0;; int findParent(int x) { if (x == parent[x]) return x; else return x = findParent(parent[x]); }.. 2021. 11. 14.
[๋ฐฑ์ค€,c++] 14938๋ฒˆ - ์„œ๊ฐ•๊ทธ๋ผ์šด๋“œ ๋ฌธ์ œ 14938๋ฒˆ: ์„œ๊ฐ•๊ทธ๋ผ์šด๋“œ ์˜ˆ์€์ด๋Š” ์š”์ฆ˜ ๊ฐ€์žฅ ์ธ๊ธฐ๊ฐ€ ์žˆ๋Š” ๊ฒŒ์ž„ ์„œ๊ฐ•๊ทธ๋ผ์šด๋“œ๋ฅผ ์ฆ๊ธฐ๊ณ  ์žˆ๋‹ค. ์„œ๊ฐ•๊ทธ๋ผ์šด๋“œ๋Š” ์—ฌ๋Ÿฌ ์ง€์—ญ์ค‘ ํ•˜๋‚˜์˜ ์ง€์—ญ์— ๋‚™ํ•˜์‚ฐ์„ ํƒ€๊ณ  ๋‚™ํ•˜ํ•˜์—ฌ, ๊ทธ ์ง€์—ญ์— ๋–จ์–ด์ ธ ์žˆ๋Š” ์•„์ดํ…œ๋“ค์„ ์ด์šฉํ•ด ์„œ๋ฐ”์ด๋ฒŒ์„ www.acmicpc.net ์ฝ”๋“œ #include #include #define INF 1e9 using namespace std; int n,m,r,ans; //n=์ง€์—ญ์˜ ๊ฐฏ์ˆ˜, m=์ˆ˜์ƒ‰๋ฒ”์œ„, r=๊ธธ์ด์˜ ๊ฐฏ์ˆ˜ int graph[101][101]; int item[101]; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin>>n>>m>>r; for(int i=0; i>b>>c; graph[a][b]=c; graph[b][a]=c; .. 2021. 11. 14.
[๋ฐฑ์ค€,c++] 1439๋ฒˆ - ๋’ค์ง‘๊ธฐ ๋ฌธ์ œ 1439๋ฒˆ: ๋’ค์ง‘๊ธฐ ๋‹ค์†œ์ด๋Š” 0๊ณผ 1๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด S๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋‹ค์†œ์ด๋Š” ์ด ๋ฌธ์ž์—ด S์— ์žˆ๋Š” ๋ชจ๋“  ์ˆซ์ž๋ฅผ ์ „๋ถ€ ๊ฐ™๊ฒŒ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ๋‹ค์†œ์ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰๋™์€ S์—์„œ ์—ฐ์†๋œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ˆซ์ž๋ฅผ ์žก๊ณ  ๋ชจ www.acmicpc.net ์ฝ”๋“œ #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); string s; cin >> s; int zero = 0, one = 0; int flag = -1; for (int i = 0; i < s.length(); i++) { //์—ฐ์†๋œ ์ˆ˜ ๊ฐฏ์ˆ˜ ์ฒดํฌ if (s[i] == '0') { if (flag != 1) zero++; flag = 1; } .. 2021. 11. 14.
[๋ฐฑ์ค€,c++] 14923๋ฒˆ - ๋ฏธ๋กœ ํƒˆ์ถœ ๋ฌธ์ œ 14923๋ฒˆ: ๋ฏธ๋กœ ํƒˆ์ถœ ํ™์ต์ด๋Š” ์‚ฌ์•…ํ•œ ๋งˆ๋ฒ•์‚ฌ์˜ ๊พ์— ์†์•„ N x M ๋ฏธ๋กœ (Hx, Hy) ์œ„์น˜์— ๋–จ์–ด์กŒ๋‹ค. ๋‹คํ–‰ํžˆ๋„ ํ™์ต์ด๋Š” ๋งˆ๋ฒ•์‚ฌ๊ฐ€ ๋งŒ๋“  ๋ฏธ๋กœ์˜ ํƒˆ์ถœ ์œ„์น˜(Ex, Ey)๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฏธ๋กœ์—๋Š” ๊ณณ๊ณณ์— ๋งˆ๋ฒ•์‚ฌ๊ฐ€ ์„ค์น˜ํ•œ ๋ฒฝ์ด www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int N,M,start_x,start_y,arrived_x,arrived_y,ans; int map[1001][1001]; int visited[1001][1001][2]; const int dx[4]={0,0,-1,1}; const int dy[4]={-1,1,0,0}; int bfs(int x,int y){ queueq; //{๋ฒฝ ๋šซ๊ธฐ ์—ฌ๋ถ€,{x,y}} q.pu.. 2021. 11. 14.
[๋ฐฑ์ค€,c++] 14921๋ฒˆ - ์šฉ์•ก ํ•ฉ์„ฑํ•˜๊ธฐ ๋ฌธ์ œ 14921๋ฒˆ: ์šฉ์•ก ํ•ฉ์„ฑํ•˜๊ธฐ ํ™์ต๋Œ€ ํ™”ํ•™์—ฐ๊ตฌ์†Œ๋Š” ๋‹ค์–‘ํ•œ ์šฉ์•ก์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋‹ค. ๊ฐ ์šฉ์•ก์€ -100,000,000๋ถ€ํ„ฐ 100,000,000์‚ฌ์ด์˜ ํŠน์„ฑ ๊ฐ’์„ ๊ฐ–๋Š”๋ฐ, ๊ฐ™์€ ์–‘์˜ ๋‘ ์šฉ์•ก์„ ํ˜ผํ•ฉํ•˜๋ฉด, ๊ทธ ํŠน์„ฑ๊ฐ’์€ ๋‘ ์šฉ์•ก์˜ ํŠน์„ฑ๊ฐ’์˜ ํ•ฉ์ด ๋œ๋‹ค. ๋‹น www.acmicpc.net ์ฝ”๋“œ #include #include #include #define INF 2e9+1 using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int N; cin >> N; vectorv(N); for (int i = 0; i > v[i]; } int start = 0; int end = N - 1; int minVa.. 2021. 11. 14.
[๋ฐฑ์ค€,c++] 14920๋ฒˆ - 3n+1 ์ˆ˜์—ด ๋ฌธ์ œ 14920๋ฒˆ: 3n+1 ์ˆ˜์—ด ๋‹ค์Œ์˜ ์ ํ™”์‹์— ์˜ํ•ด ์ •ํ•ด์ง€๋Š” ์ˆ˜์—ด C(n)์„ ์ƒ๊ฐํ•˜์ž: C(n+1) = C(n)/2 (C(n)์ด ์ง์ˆ˜์ผ ๋•Œ) = 3*C(n)+1 (C(n)์ด ํ™€์ˆ˜์ผ ๋•Œ) ์ดˆํ•ญ C(1)์ด ์ž์—ฐ์ˆ˜๋กœ ์ฃผ์–ด์ง€๋ฉด, ์ด ์ ํ™”์‹์€ ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ์ˆ˜์—ด์„ ์ •ํ•œ๋‹ค. www.acmicpc.net ์ฝ”๋“œ #include using namespace std; int cnt = 0; int check(int N) { cnt++; if (N == 1) return 0; if (N % 2 == 0) return check(N / 2); //์ง์ˆ˜์ผ๋•Œ else return check(3 * N + 1); //ํ™€์ˆ˜์ผ๋•Œ } int main() { ios_base::sync_with_stdio(false); cin.t.. 2021. 11. 14.
[๋ฐฑ์ค€,c++] 14916๋ฒˆ - ๊ฑฐ์Šค๋ฆ„๋ˆ ๋ฌธ์ œ 14916๋ฒˆ: ๊ฑฐ์Šค๋ฆ„๋ˆ ์ฒซ์งธ ์ค„์— ๊ฑฐ์Šค๋ฆ„๋ˆ ์•ก์ˆ˜ n(1 ≤ n ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ์ฝ”๋“œ #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); int n; //๊ฐ€๊ฒฉ int cnt = 0; //ํšŸ์ˆ˜ cin >> n; int temp = n % 5; if (n == 1 || n == 3) cnt = -1; else if (temp % 2 == 0) cnt = n / 5 + temp / 2; else cnt = ((n / 5) - 1) + ((temp + 5) / 2); cout 2021. 11. 14.
[๋ฐฑ์ค€,c++] 14889๋ฒˆ - ์Šคํƒ€ํŠธ์™€ ๋งํฌ ๋ฌธ์ œ 14889๋ฒˆ: ์Šคํƒ€ํŠธ์™€ ๋งํฌ ์˜ˆ์ œ 2์˜ ๊ฒฝ์šฐ์— (1, 3, 6), (2, 4, 5)๋กœ ํŒ€์„ ๋‚˜๋ˆ„๋ฉด ๋˜๊ณ , ์˜ˆ์ œ 3์˜ ๊ฒฝ์šฐ์—๋Š” (1, 2, 4, 5), (3, 6, 7, 8)๋กœ ํŒ€์„ ๋‚˜๋ˆ„๋ฉด ๋œ๋‹ค. www.acmicpc.net ์ฝ”๋“œ #include #include using namespace std; int map[101][101]; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int N; cin>>N; for(int i=0; imap[i][k]; } } int ans=9999; for(int i=0; i 2021. 11. 14.