728x90

๐Ÿ“ Coding Test Study 108

ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);

๊ฐ€๋” ์ œํ•œ์‹œ๊ฐ„์„ ๋„˜๊ธฐ์ง€ ์•Š์•˜๋Š”๋ฐ๋„ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚  ๋•Œ๊ฐ€ ์žˆ๋‹ค.๊ทธ ๋• ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ฝ”๋“œ ์‹œ์ž‘ ์ „์— ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ํ•ด๊ฒฐ์ด ๋˜๊ธฐ๋„ ํ•œ๋‹ค. ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false);C์™€ C++ ํ‘œ์ค€ ์ŠคํŠธ๋ฆผ ๊ฐ„์˜ ๋™๊ธฐํ™”๋ฅผ ๋น„ํ™œ์„ฑํ™”์‹œํ‚จ๋‹ค. ๋™๊ธฐํ™”๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด C++ ์ŠคํŠธ๋ฆผ์ด ์ž์ฒด ๋…๋ฆฝ ๋ฒ„ํผ๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ ๋ฒ„ํผ ์ˆ˜๊ฐ€ ์ค„์–ด์„œ ์‹คํ–‰์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค(+). ๋‹ค๋งŒ ๋ถ€์ž‘์šฉ์€ ๋ชจ๋“  IO์˜ ์ˆœ์„œ๊ฐ€ ์˜ˆ์ƒํ•œ ๊ฒƒ๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค. c ์˜ ์ž…์ถœ๋ ฅ์ฝ”๋“œ์™€ c++ ์˜ ์ž…์ถœ๋ ฅ์ฝ”๋“œ๋ฅผ ํ˜ผ์šฉํ•ด์„œ ์“ฐ๋ฉด ์•ˆ๋œ๋‹ค(-). cin.tie(NULL); cout.tie(NULL);C++ ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ cin๊ณผ c..

[C++][Baekjoon][map] 1620 ๋‚˜๋Š”์•ผ ํฌ์ผ“๋ชฌ ๋งˆ์Šคํ„ฐ(map/arr ์‹œ๊ฐ„๋ณต์žก๋„, map value๋กœ key์ฐพ๊ธฐ)

[๋ฌธ์ œ] 1620๋ฒˆ: ๋‚˜๋Š”์•ผ ํฌ์ผ“๋ชฌ ๋งˆ์Šคํ„ฐ ์ด๋‹ค์†œ ์ฒซ์งธ ์ค„์—๋Š” ๋„๊ฐ์— ์ˆ˜๋ก๋˜์–ด ์žˆ๋Š” ํฌ์ผ“๋ชฌ์˜ ๊ฐœ์ˆ˜ N์ด๋ž‘ ๋‚ด๊ฐ€ ๋งž์ถฐ์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ ธ. N๊ณผ M์€ 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ธ๋ฐ, ์ž์—ฐ์ˆ˜๊ฐ€ ๋ญ”์ง€๋Š” ์•Œ์ง€? ๋ชจ๋ฅด๋ฉด www.acmicpc.net ์ฒซ์งธ ์ค„์—๋Š” ๋„๊ฐ์— ์ˆ˜๋ก๋˜์–ด ์žˆ๋Š” ํฌ์ผ“๋ชฌ์˜ ๊ฐœ์ˆ˜ N์ด๋ž‘ ๋‚ด๊ฐ€ ๋งž์ถฐ์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. N๊ณผ M์€ 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ํฌ์ผ“๋ชฌ์˜ ๋ฒˆํ˜ธ๊ฐ€ 1๋ฒˆ์ธ ํฌ์ผ“๋ชฌ๋ถ€ํ„ฐ N๋ฒˆ์— ํ•ด๋‹นํ•˜๋Š” ํฌ์ผ“๋ชฌ๊นŒ์ง€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜จ๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„๋ถ€ํ„ฐ ์ด M๊ฐœ์˜ ์ค„์— ๋‚ด๊ฐ€ ๋งž์ถฐ์•ผํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜จ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ ์ž…๋ ฅ์œผ๋กœ ์ˆซ์ž๊ฐ€ ๋“ค์–ด์™”๋‹ค๋ฉด ๊ทธ ์ˆซ์ž์— ํ•ด๋‹นํ•˜..

[C++][Baekjoon][๋ฌธ์ž์—ด] 2559 ์ˆ˜์—ด (feat. prefix sum)

๋ฌธ์ œ https://www.acmicpc.net/problem/2559 2559๋ฒˆ: ์ˆ˜์—ด ์ฒซ์งธ ์ค„์—๋Š” ๋‘ ๊ฐœ์˜ ์ •์ˆ˜ N๊ณผ K๊ฐ€ ํ•œ ๊ฐœ์˜ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ •์ˆ˜ N์€ ์˜จ๋„๋ฅผ ์ธก์ •ํ•œ ์ „์ฒด ๋‚ ์งœ์˜ ์ˆ˜์ด๋‹ค. N์€ 2 ์ด์ƒ 100,000 ์ดํ•˜์ด๋‹ค. ๋‘ ๋ฒˆ์งธ ์ •์ˆ˜ K๋Š” ํ•ฉ์„ ๊ตฌํ•˜๊ธฐ www.acmicpc.net ๋งค์ผ ์ธก์ •ํ•œ ์˜จ๋„๊ฐ€ ์ •์ˆ˜์˜ ์ˆ˜์—ด๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์—ฐ์†์ ์ธ ๋ฉฐ์น  ๋™์•ˆ์˜ ์˜จ๋„์˜ ํ•ฉ์ด ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์กฐ๊ฑด N์€ 2 ์ด์ƒ 100,000 ์ดํ•˜ ์ฃผ์–ด์ง€๋Š” ์ˆ˜๋“ค์€ ๋ชจ๋‘ -100 ์ด์ƒ 100 ์ดํ•˜ ์˜ˆ์ œ ๋ฌธ์ œ/๋‹ต 10 2 3 -2 -4 -9 0 3 7 13 8 -3 10๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๊ณ , 2์ผ์น˜๋ฅผ ์—ฐ์†์ ์œผ๋กœ ๋”ํ–ˆ์„ ๋•Œ ๊ฐ– ๊ฐ’, => ์ •๋‹ต์€ 21 ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์ฒจ์— ๊ทœ์น™ ์ฐพ์•„์„œ ํ•˜..

[C++][Baekjoon][๋ฌธ์ž์—ด] 9996๋ฒˆ ํ•œ๊ตญ์ด ๊ทธ๋ฆฌ์šธ ๋• ์„œ๋ฒ„์— ์ ‘์†ํ•˜์ง€

[๋ฌธ์ œ] https://www.acmicpc.net/problem/9996 9996๋ฒˆ: ํ•œ๊ตญ์ด ๊ทธ๋ฆฌ์šธ ๋• ์„œ๋ฒ„์— ์ ‘์†ํ•˜์ง€ ์ด N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ i๋ฒˆ์งธ ํŒŒ์ผ ์ด๋ฆ„์ด ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋ฉด "DA", ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด "NE"๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ, "DA"๋Š” ํฌ๋กœ์•„ํ‹ฐ์–ด์–ด๋กœ "YES"๋ฅผ, "NE"๋Š” "NO"๋ฅผ ์˜๋ฏธํ•œ๋‹ค. www.acmicpc.net ํŒŒ์ผ์˜ ๊ฐœ์ˆ˜์™€ ํŒจํ„ด์ด ์ฃผ์–ด์ง„๋‹ค. ํŒจํ„ด์€ a*b ์ด๋Ÿฐ ์‹์œผ๋กœ ์ฃผ์–ด์ง€๋˜, *์—” ๊ณต๋ž€์„ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ ์ƒ์ดํ•œ ๋ฌธ์ž์—ด์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์ด ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋ฉด "DA", ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด "NE" ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ฃผ์˜ํ•  ์ ์€, a*b ์ด๋Ÿฐ ์‹์œผ๋กœ ํŒจํ„ด์€ 1๋ฌธ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ab*bc ์ด๋Ÿฐ ์‹์œผ๋กœ 2๊ธ€์ž, 3๊ธ€์ž... ๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ. ์˜ˆ์ œ ์ž…๋ ฅ 3 a*d a..

[C++][Baekjoon][๋ฌธ์ž์—ด] 11655๋ฒˆ ROT13

* ๋ฌธ์ œ 11655๋ฒˆ: ROT13 ์ฒซ์งธ ์ค„์— ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž, ๊ณต๋ฐฑ, ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. S์˜ ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. www.acmicpc.net ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ROT13 ์œผ๋กœ ์•”ํ˜ธํ™”ํ•œ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค. * ๋ฌธ์ œํ’€์ด ROT13์€ ์•ŒํŒŒ๋ฒณ์„ 13๊ธ€์ž์”ฉ ๋ฐ€์–ด์„œ ๋งŒ๋“œ๋ฏ€๋กœ ASCII ์ฝ”๋“œ๋กœ ํ‘œํ˜„๋œ ์•ŒํŒŒ๋ฒณ ์ˆซ์ž์— 13์„ ๋”ํ•ด์„œ ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ์ด ๋•Œ, z(Z) ๊ฐ’์ด ๋„˜์–ด๊ฐˆ ๋•Œ๋Š” ๋‹ค์‹œ a(A) ๊ฐ’๋ถ€ํ„ฐ ์นด์šดํŠธํ•ด์ค˜์•ผ ํ•œ๋‹ค. ROT13์€ ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜์ธ 26์˜ ์ •ํ™•ํ•œ ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํžˆ ์•ŒํŒŒ๋ฒณ + 13 ๊ฐ’์—์„œ 26์„ ๋นผ์ฃผ๋ฉด ๋œ๋‹ค. * ์•Œ์•„๋‘˜ ๊ฒƒ 1) ASCII ์ฝ”๋“œ 2) int to string to_string(97); 3) int to char ์•”์‹œ์ ,..

[C++][Baekjoon][๋ฌธ์ž์—ด] 10808๋ฒˆ ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜

๋ฌธ์ œ 10808๋ฒˆ: ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜ ๋‹จ์–ด์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” a์˜ ๊ฐœ์ˆ˜, b์˜ ๊ฐœ์ˆ˜, …, z์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด S๊ฐ€ ์ฃผ์–ด์กŒ๋‹ค. ๊ฐ ์•ŒํŒŒ๋ฒณ์ด ๋‹จ์–ด์— ๋ช‡ ๊ฐœ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ๊ตฌํ•˜๋ผ. ๋‹จ์–ด์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” a์˜ ๊ฐœ์ˆ˜, b์˜ ๊ฐœ์ˆ˜, …, z์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค. ํ’€์ด ์•ŒํŒŒ๋ฒณ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ด 26๊ฐœ์ด๊ณ , ๋ฌธ์ž์—ด์€ ์•„์Šคํ‚ค ์ฝ”๋“œ๋กœ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ index ์— ๋”ฐ๋ผ ์ •์ˆ˜๊ฐ’์„ ๊ฐ–๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. 1) ๋‹จ์–ด S ์˜ ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜๋ฅผ count ํ•  ๋ฒกํ„ฐ๋ฅผ ๋งŒ๋“ ๋‹ค. vector alphabets(26, 0); 2) ์•„์Šคํ‚ค๊ฐ’์„ ์‚ฌ์šฉํ•ด์„œ ์•ŒํŒŒ๋ฒณ index ๋ฅผ ๊ตฌํ•ด์„œ 1)์—์„œ ๋งŒ๋“  ๋ฒกํ„ฐ์— ์นด์šดํŠธํ•œ๋‹ค. int index = (int..

[10์ฃผ ์™„์„ฑ C++ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ๋ˆ„์ ํ•ฉ, Prefix Sum

* ๋ˆ„์ ํ•ฉ: ์–ด๋–ค ๋ฐฐ์—ด์˜ ์•ž ์š”์†Œ๋ถ€ํ„ฐ ๋ˆ„์ ๋œ ํ•ฉ์„ ์ €์žฅํ•œ ๋ฐฐ์—ด. ์•ž์—์„œ๋ถ€ํ„ฐ ๋”ํ•˜๋Š” prefix sum๊ณผ ๋’ค์—์„œ ๋ถ€ํ„ฐ ๋”ํ•˜๋Š” suffix sum ์ด ์žˆ๋‹ค. ๋ฐฐ์—ด์˜ ๊ฐ’์ด ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ •์  ๋ณ€์ˆ˜์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. * ๋ˆ„์ ํ•ฉ์ด ํ•„์š”ํ•œ ์˜ˆ์‹œ๋ฌธ์ œ ๋ฌธ์ œ ์Šน์ฒ ์ด๋Š” ๋‡Œ๋ฅผ ์žƒ์–ด๋ฒ„๋ ธ๋‹ค. ํ•™๊ต์— ๊ฐ”๋”๋‹ˆ ์„ ์ƒ๋‹˜์ด ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ N๊ฐœ์˜ ์นด๋“œ๋ฅผ ์ฃผ๋ฉฐ M๊ฐœ์˜ ์งˆ๋ฌธ์„ ๋˜์ง„๋‹ค. ๊ทธ ์งˆ๋ฌธ์€ ๋‚˜์—ดํ•œ ์นด๋“œ ์ค‘ A๋ฒˆ์งธ๋ถ€ํ„ฐ B๋ฒˆ์งธ๊นŒ์ง€์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‡Œ๋ฅผ ์žƒ์–ด๋ฒ„๋ ธ๊ธฐ ๋•Œ๋ฌธ์— ์Šน์ฒ ์ด๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜๊ฐ€ ์—†๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์ž. ์ž…๋ ฅ ์ˆ˜์˜ ๊ฐœ์ˆ˜N, ํ•ฉ์„ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ํšŸ์ˆ˜ M, ๊ทธ ์ดํ›„ N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ˆ˜๋Š” 100์ดํ•˜์˜ ์ž์—ฐ์ˆ˜. ๊ทธ ์ดํ›„ M๊ฐœ์˜ ์ค„์—๋Š” ํ•ฉ์„ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๊ตฌ๊ฐ„ A, B๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ M..

[10์ฃผ ์™„์„ฑ C++ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ํ•„์ˆ˜๊ฐœ๋… - map, unique()

์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ ์ค‘๋ณต์—†๋Š” ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ผ๊ณ  ํ•  ๋•Œ, map ์ด๋‚˜ unique ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ๋‹ค. 1. map #include #include #include using namespace std; map mp; int main() { vector v{ 1,1,2,2,3,3 }; for (int i : v) { if (mp[i]) continue; else mp[i] = 1; } vector ret; for (auto it : mp) { ret.push_back(it.first); } for (int i : ret) cout

[10์ฃผ ์™„์„ฑ C++ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ํ•„์ˆ˜๊ฐœ๋… - ๋ฉ”๋ชจ๋ฆฌ์™€ ํฌ์ธํ„ฐ(pointer)

* ๋ฉ”๋ชจ๋ฆฌ ์ปดํ“จํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์…€์˜ ์—ฐ์†๊ณผ ๊ฐ™๋‹ค. ๊ฐ ์…€์˜ ํฌ๊ธฐ๋Š” 1byte ์ด๊ณ  ๊ณ ์œ ์˜ ์ฃผ์†Œ๊ฐ€ ์žˆ๋‹ค. int i; ์œ„์™€ ๊ฐ™์ด int ํƒ€์ž…์„ ์„ ์–ธํ•˜๋ฉด 4Byte์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์—์•ฝํ•˜๊ฒŒ ๋œ๋‹ค. ์ปดํ“จํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 128GB ๋ผ๊ณ  ํ•  ๋•Œ, 128GB ์ค‘ 4Byte์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์˜ˆ์•ฝํ•˜๋Š” ๊ฒƒ. cout

728x90