๐Ÿค” PS(Problem Solving)

    [๋ฐฑ์ค€/java] 15651 - N๊ณผ M (3)

    ๋ฌธ์ œ 15651๋ฒˆ: N๊ณผ M (3) ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ค‘๋ณต๋˜๋Š” ์ˆ˜์—ด์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ถœ๋ ฅํ•˜๋ฉด ์•ˆ๋˜๋ฉฐ, ๊ฐ ์ˆ˜์—ด์€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ์ˆ˜์—ด์€ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ถœ๋ ฅํ•ด www.acmicpc.net ์ฝ”๋“œ

    [๋ฐฑ์ค€/java] 15649 - N๊ณผ M (1)

    ๋ฌธ์ œ 15649๋ฒˆ: N๊ณผ M (1) ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ค‘๋ณต๋˜๋Š” ์ˆ˜์—ด์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ถœ๋ ฅํ•˜๋ฉด ์•ˆ๋˜๋ฉฐ, ๊ฐ ์ˆ˜์—ด์€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ์ˆ˜์—ด์€ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ถœ๋ ฅํ•ด www.acmicpc.net ์ฝ”๋“œ() *๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค(--)(__)*

    [Level3/Java] ๋„คํŠธ์›Œํฌ

    ๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋„คํŠธ์›Œํฌ ๋„คํŠธ์›Œํฌ๋ž€ ์ปดํ“จํ„ฐ ์ƒํ˜ธ ๊ฐ„์— ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ปดํ“จํ„ฐ A์™€ ์ปดํ“จํ„ฐ B๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๊ณ , ์ปดํ“จํ„ฐ B์™€ ์ปดํ“จํ„ฐ C๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ programmers.co.kr ์ฝ”๋“œ

    [Level2/c++] ๋ฉ€์ฉกํ•œ ์‚ฌ๊ฐํ˜•

    ๋ฌธ์ œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ์ด์šฉํ•ด์•ผ ํ•˜๋Š” ์ˆ˜ํ•™๋ฌธ์ œ์˜€๋‹ค. ์•„๋ž˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜์˜€๋‹ค. [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฉ€์ฉกํ•œ ์‚ฌ๊ฐํ˜• in python ํŒŒ์ด์ฌ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ’€๊ธฐ :: ๋ฉ€์ฉกํ•œ ์‚ฌ๊ฐํ˜• ๋ฌธ์ œ ์„ค๋ช… ๊ฐ€๋กœ ๊ธธ์ด๊ฐ€ Wcm, ์„ธ๋กœ ๊ธธ์ด๊ฐ€ Hcm์ธ ์ง์‚ฌ๊ฐํ˜• ์ข…์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…์ด์—๋Š” ๊ฐ€๋กœ, ์„ธ๋กœ ๋ฐฉํ–ฅ๊ณผ ํ‰ํ–‰ํ•˜๊ฒŒ ๊ฒฉ์ž ํ˜•ํƒœ๋กœ ์„ ์ด ๊ทธ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ๊ฒฉ์ž์นธ์€.. leedakyeong.tistory.com ์ฝ”๋“œ + ์žฌ๊ท€๋กœ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ int gcd(int a, int b){ if(a==0) return b; else retu..

    [Level2/c++,Java] ์Šคํ‚ฌํŠธ๋ฆฌ

    ๋ฌธ์ œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋‚˜์˜ ํ’€์ด 1. skill ๋ฌธ์ž,์ธ๋ฑ์Šค๋ฅผ map์— ์ €์žฅํ•œ๋‹ค.(๋‹ค๋ฅธ์‚ฌ๋žŒ๋“ค ํ’€์ด ๋ณด๋‹ˆ ์ถ”๊ฐ€๊ณต๊ฐ„ ํ•„์š”์—†๋‹ค) 2. ์œ ์ €์Šคํ‚ฌํŠธ๋ฆฌ์—์„œ skill์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž๋ฅผ ์ฐพ๋Š”๋‹ค. map[ํ•ด๋‹น๋ฌธ์ž] ์ธ๋ฑ์Šค๋ฅผ vector์— ์ €์žฅํ•œ๋‹ค. 3. vector ์ €์žฅ๊ฐ’์ด 1,2,3,4...์˜ ์ˆœ์„œ๋กœ ๋˜์–ด์žˆ๋Š”์ง€ ์ฒดํฌํ•œ๋‹ค. ์ฝ”๋“œ C++ JAVA + ๋” ๋‚˜์€ ๋‹ค๋ฅธ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด

    [๋ฐฑ์ค€/c++] 11657 - ํƒ€์ž„๋จธ์‹ 

    ๋ฌธ์ œ 11657๋ฒˆ: ํƒ€์ž„๋จธ์‹  ์ฒซ์งธ ์ค„์— ๋„์‹œ์˜ ๊ฐœ์ˆ˜ N (1 ≤ N ≤ 500), ๋ฒ„์Šค ๋…ธ์„ ์˜ ๊ฐœ์ˆ˜ M (1 ≤ M ≤ 6,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์—๋Š” ๋ฒ„์Šค ๋…ธ์„ ์˜ ์ •๋ณด A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ํ’€์ด ๋ถ„๋ฅ˜ : ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ์ฐพ๊ธฐ + ์Œ์˜ ๊ฐ€์ค‘์น˜ ์ด๋ฏ€๋กœ ๋ฒจ๋งŒํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ(O((n^2)*m) *O((n^2)*m์ด ์•„๋‹ˆ๋ผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค(--)(__)*

    [๋ฐฑ์ค€/c++] 1012๋ฒˆ - ์œ ๊ธฐ๋† ๋ฐฐ์ถ”

    ๋ฌธ์ œ 1012๋ฒˆ: ์œ ๊ธฐ๋† ๋ฐฐ์ถ” ์ฐจ์„ธ๋Œ€ ์˜๋†์ธ ํ•œ๋‚˜๋Š” ๊ฐ•์›๋„ ๊ณ ๋žญ์ง€์—์„œ ์œ ๊ธฐ๋† ๋ฐฐ์ถ”๋ฅผ ์žฌ๋ฐฐํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ๋†์•ฝ์„ ์“ฐ์ง€ ์•Š๊ณ  ๋ฐฐ์ถ”๋ฅผ ์žฌ๋ฐฐํ•˜๋ ค๋ฉด ๋ฐฐ์ถ”๋ฅผ ํ•ด์ถฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•œ๋‚˜๋Š” ํ•ด์ถฉ ๋ฐฉ์ง€์— ํšจ๊ณผ์ ์ธ ๋ฐฐ์ถ”ํฐ์ง€๋ ์ด๋ฅผ ๊ตฌ์ž…ํ•˜๊ธฐ๋กœ ๊ฒฐ์‹ฌํ•œ๋‹ค. ์ด ์ง€๋ ์ด๋Š” ๋ฐฐ์ถ”๊ทผ์ฒ˜์— ์„œ์‹ํ•˜๋ฉฐ ํ•ด์ถฉ์„ ์žก์•„ ๋จน์Œ์œผ๋กœ์จ ๋ฐฐ์ถ”๋ฅผ ๋ณดํ˜ธํ•œ๋‹ค. ํŠนํžˆ, ์–ด๋–ค ๋ฐฐ์ถ”์— ๋ฐฐ์ถ”ํฐ์ง€๋ ์ด๊ฐ€ ํ•œ ๋งˆ๋ฆฌ๋ผ๋„ ์‚ด๊ณ  ์žˆ์œผ๋ฉด ์ด ์ง€๋ ์ด๋Š” ์ธ์ ‘ํ•œ ๋‹ค๋ฅธ ๋ฐฐ์ถ”๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์–ด, ๊ทธ ๋ฐฐ์ถ”๋“ค ์—ญ์‹œ ํ•ด์ถฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ( www.acmicpc.net ํ’€์ด ๋ถ„๋ฅ˜ : ๊ทธ๋ž˜ํ”„, DFS 1. ๋ฐญ์„ ๋‚˜ํƒ€๋‚ผ int 2์ฐจ๋ฐฐ์—ด, ๋ฐฉ๋ฌธ์ฒดํฌํ•  bool 2์ฐจ๋ฐฐ์—ด์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. 2. field[0][0] ~ field[M-1][N-1] ๊นŒ์ง€ for๋ฌธ์œผ๋กœ ๋Œ๋ฉด์„œ,..

    [๋ฐฑ์ค€/c++] 11729๋ฒˆ - ํ•˜๋…ธ์ด ํƒ‘ ์ด๋™ ์ˆœ์„œ

    ๋ฌธ์ œ 11729๋ฒˆ: ํ•˜๋…ธ์ด ํƒ‘ ์ด๋™ ์ˆœ์„œ ์„ธ ๊ฐœ์˜ ์žฅ๋Œ€๊ฐ€ ์žˆ๊ณ  ์ฒซ ๋ฒˆ์งธ ์žฅ๋Œ€์—๋Š” ๋ฐ˜๊ฒฝ์ด ์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ์˜ ์›ํŒ์ด ์Œ“์—ฌ ์žˆ๋‹ค. ๊ฐ ์›ํŒ์€ ๋ฐ˜๊ฒฝ์ด ํฐ ์ˆœ์„œ๋Œ€๋กœ ์Œ“์—ฌ์žˆ๋‹ค. ์ด์ œ ์ˆ˜๋„์Šน๋“ค์ด ๋‹ค์Œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ฒซ ๋ฒˆ์งธ ์žฅ๋Œ€์—์„œ ์„ธ ๋ฒˆ์งธ ์žฅ๋Œ€๋กœ ์˜ฎ๊ธฐ๋ ค ํ•œ๋‹ค. ํ•œ ๋ฒˆ์— ํ•œ ๊ฐœ์˜ ์›ํŒ๋งŒ์„ ๋‹ค๋ฅธ ํƒ‘์œผ๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์Œ“์•„ ๋†“์€ ์›ํŒ์€ ํ•ญ์ƒ ์œ„์˜ ๊ฒƒ์ด ์•„๋ž˜์˜ ๊ฒƒ๋ณด๋‹ค ์ž‘์•„์•ผ ํ•œ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ด๋™ ์ˆœ์„œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. ๋‹จ, ์ด๋™ ํšŸ์ˆ˜๋Š” ์ตœ์†Œ๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ ์›ํŒ์ด 5 www.acmicpc.net ํ’€์ด ๋ถ„๋ฅ˜ : ๋ถ„ํ•  ์ •๋ณต ์ฃผ์–ด์ง„ ์˜ˆ์ œ๋กœ ํ•˜๋…ธ์ด์˜ ํƒ‘ ์›๋ฆฌ๋ฅผ ์ƒ๊ฐํ•ด๋ด…๋‹ˆ๋‹ค. (1)์›ํŒ์˜ ๊ฐฏ์ˆ˜๊ฐ€ 1๊ฐœ์ผ ๊ฒฝ์šฐ -ํ•˜๋‚˜๋ฟ์ด๋ฏ€๋กœ 3๋ฒˆ๊ธฐ๋‘ฅ์œผ๋กœ ๋ฐ”๋กœ ์˜ฎ๊น๋‹ˆ๋‹ค. 1 3 (2)์›ํŒ์˜ ๊ฐฏ์ˆ˜๊ฐ€ 2๊ฐœ์ผ ..

    [๋ฐฑ์ค€/c++] 1107๋ฒˆ - ๋ฆฌ๋ชจ์ปจ

    ๋ฌธ์ œ 1107๋ฒˆ: ๋ฆฌ๋ชจ์ปจ ์ฒซ์งธ ์ค„์— ์ˆ˜๋นˆ์ด๊ฐ€ ์ด๋™ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ฑ„๋„ N (0 ≤ N ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ์˜ ๊ฐœ์ˆ˜ M (0 ≤ M ≤ 10)์ด ์ฃผ์–ด์ง„๋‹ค. ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์…‹์งธ ์ค„์—๋Š” ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ์ด ์ฃผ์–ด์ง€๋ฉฐ, ๊ฐ™์€ ๋ฒ„ํŠผ์ด ์—ฌ๋Ÿฌ ๋ฒˆ ์ฃผ์–ด์ง€๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค. www.acmicpc.net ํ’€์ด ๋ถ„๋ฅ˜ : ์™„์ „ํƒ์ƒ‰, ์ˆ˜ํ•™ ์ฝ”๋“œ(O(nm)) *O(nm)์ด ์•„๋‹ˆ๋ผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค(--)(__)*

    [๋ฐฑ์ค€/c++] 10819๋ฒˆ - ์ฐจ์ด๋ฅผ ์ตœ๋Œ€๋กœ

    ๋ฌธ์ œ 10819๋ฒˆ: ์ฐจ์ด๋ฅผ ์ตœ๋Œ€๋กœ ์ฒซ์งธ ์ค„์— N (3 ≤ N ≤ 8)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๋ฐฐ์—ด A์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋ฐฐ์—ด์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๋Š” -100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. www.acmicpc.net ํ’€์ด ๋ถ„๋ฅ˜ : ์™„์ „ํƒ์ƒ‰ ๋ฌด์ž‘์œ„๋กœ ๋‚˜์—ด๋œ ์ˆ˜์—ด์—์„œ |A[0] - A[1]| + |A[1] - A[2]| + ... + |A[N-2] - A[N-1]| ์œ„ ์‹์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. 1. algorithmํ—ค๋”์˜ next_permutationํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌด์ž‘์œ„์˜ ์ˆ˜์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. 2. ๋ฌด์ž‘์œ„๋กœ ๋งŒ๋“ค์–ด์ง„ ์ˆ˜์—ด์— ์œ„์˜ ์‹์„ ๋Œ€์ž…ํ•˜์—ฌ, ๊ฐ€์žฅ ํฐ ๊ฐ’์ด ๋‚˜์˜ฌ๋•Œ๋งˆ๋‹ค ์ตœ๋Œ“๊ฐ’์„ ๊ฐฑ์‹ ํ•ด์ค๋‹ˆ๋‹ค. ์ฝ”๋“œ(O(n+1)!) *O(n+1)!์ด ์•„๋‹ˆ๋ผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค(--)(__)*