Hamutaro - Hamtaro 4

Algorithm/Programmers 19

[LV2/JAVA] ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜

https://school.programmers.co.kr/learn/courses/30/lessons/12945 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr  1. ์žฌ๊ท€ํ•จ์ˆ˜(recursive)๋กœ ํ’€๋ฉด ์ž…๋ ฅ๊ฐ’์ด ํด ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ์ฐจ์ง€๋ฅผ ๋งŽ์ด ํ•˜๊ณ  ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค.2. ์ค‘๋ณต์—ฐ์‚ฐ์„ ์—†์• ๋Š” dynamic programming์„ ํ•ด์•ผํ•œ๋‹ค.3. ์ฒซ๋ฒˆ์งธ์™€ ๋‘๋ฒˆ์งธ ๊ฒฝ์šฐ๋Š” ๋ฏธ๋ฆฌ ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์‹œ์ž‘ํ•œ๋‹ค.4. ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ ์—ฐ์‚ฐ์— 1234567์˜ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์„ ํ•ด์•ผํ•œ๋‹ค. ๋‚ด ํ’€์ดclass Solution { public int solution(i..

[LV2/JAVA] ์ตœ์†Ÿ๊ฐ’ ๋งŒ๋“ค๊ธฐ

https://school.programmers.co.kr/learn/courses/30/lessons/12941 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr   1. ์ตœ์†Ÿ๊ฐ’์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ๋ฐฐ์—ด ์š”์†Œ์˜ ๊ณฑ์˜ ํ•ฉ์ด ๊ฐ€์žฅ ์ž‘๊ฒŒ ๋‚˜์˜ฌ๋งŒํ•œ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ด์•ผํ•œ๋‹ค.2. ๋ฐฐ์—ด A๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ, ๋ฐฐ์—ด B๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•ด์„œ ๊ฐ๊ฐ ๊ณฑํ•˜๋ฉด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.3. ์ฒ˜์Œ์—๋Š” ๋ฐฐ์—ด B๋ฅผ reverseOrder() ํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ no suitable method found for sort ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•จ.4. Integer ๋ฐฐ์—ด์ด๋ฉด Arrays.s..

[LV2/JAVA] ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

https://school.programmers.co.kr/learn/courses/30/lessons/12909 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr  Stack ์ปฌ๋ ‰์…˜ Java์˜ Stack ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ java.util.Stack ํด๋ž˜์Šค๋ฅผ import ํ•œ๋‹ค.Stack ์‚ฌ์šฉ๋ฒ•// Stack์— ์š”์†Œ ์‚ฝ์ž…Stack stack = new Stack();stack.push(1);stack.push(2);stack.push(3); ํ’€์ดStack์„ ์ด์šฉํ•ด์„œ ํ‘ธ๋Š” ๋ฌธ์ œ๊ด„ํ˜ธ๊ฐ€ (), (()), ()() ์ด๋Ÿฐ์‹์œผ๋กœ ์ง์ด ๋งž์œผ๋ฉด true, ์•„๋‹ˆ๋ฉด fal..

[LV2/JAVA] ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’

https://school.programmers.co.kr/learn/courses/30/lessons/12939 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr 1. ๋ฌธ์ž์—ด์„ ๋ฌธ์žํ˜• ๋ฐฐ์—ด์— ๋‹ด๋Š”๋‹ค.String[] sArr = s.split(" "); 2. ์ตœ๋Œ€, ์ตœ์†Œ๋ฅผ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•œ ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ max, min์˜ ๊ฐ’์€ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ๋น„๊ตํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๊ฑฐ๋‚˜ ์ƒ๊ด€์—†๋‹ค.3. ํ–ฅ์ƒ๋œ For๋ฌธ์œผ๋กœ ๋ฌธ์žํ˜• ๋ฐฐ์—ด์„ ์ˆœํšŒํ•œ๋‹ค.4. ๋ฌธ์žํ˜• answer์„ ๋ฆฌํ„ดํ•œ๋‹ค.class Solution { public String solution(String..

[LV1/JAVA] 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ

https://school.programmers.co.kr/learn/courses/30/lessons/68935 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. n์„ 3์ง„๋ฒ• ์ƒ์—์„œ ์•ž๋’ค๋กœ ๋’ค์ง‘์€ ํ›„, ์ด๋ฅผ ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•œ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ง„๋ฒ•์— ๊ด€ํ•œ ๋ฌธ์ œ์ด๋‹ค. ๋ฐฉ๋ฒ•์„ ์•Œ๋ฉด ์–ด๋ ต์ง€ ์•Š๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. 1. 3์ง„๋ฒ•์€ 3์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜2. n์„ 3์ง„๋ฒ• ์ƒ์—์„œ ๋’ค์ง‘์–ด์•ผํ•จ3. 3์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ถ™์—ฌ์„œ ์ €์žฅํ•˜๋ฉด ๋’ค์ง‘์€ ๊ฒฐ๊ณผ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์Œ4. ๋ฆฌํ„ดํ•  ..

[LV1/JAVA] ํ–‰๋ ฌ์˜ ๋ง์…ˆ

https://school.programmers.co.kr/learn/courses/30/lessons/12950 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr  1. ์˜ˆ์ „์— ํ•™๊ต์—์„œ C์–ธ์–ด ๋ฐฐ์šธ ๋•Œ ์ดํ›„๋กœ ์˜ค๋žœ๋งŒ์— ๋ณด๋Š” 2์ฐจ์› ๋ฐฐ์—ด... ์‹ค๋ฌด์—์„œ๋Š” ๊ฑฐ์˜ ์“ธ ์ผ์ด ์—†์—ˆ๋‹ค.2. ํ—ท๊ฐˆ๋ ค์„œ ๋ฐฐ์—ด ์š”์†Œ์— ๋Œ€ํ•œ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๋ฉฐ ํ’€์—ˆ๋‹ค. ๋‚˜์˜ ํ’€์ดclass Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr1[0]...

[LV1/JAVA] ์ฝœ๋ผ์ธ  ์ถ”์ธก

https://school.programmers.co.kr/learn/courses/30/lessons/12943 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr  1. while ๋ฌธ์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ œํ•œ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด break ๋ฌธ์œผ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ€์•ผ ํ•œ๋‹ค2. ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฐœ์ƒ์„ ๋ฐฉ์ง€ํ•ด์„œ ์• ์ดˆ์— num์˜ ์ž๋ฃŒํ˜•์„ longํ˜•์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค ๋‚ด ํ’€์ดclass Solution { public int solution(int num) { int answer = 0; while(num!=1){ ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JAVA] ์‹œ์ € ์•”ํ˜ธ

https://school.programmers.co.kr/learn/courses/30/lessons/12926 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ผ๋‹จ ๋ฌธ์ž์—ด์„ ๋ถ„๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์€ ํ–ˆ๋Š”๋ฐ ์–ด๋–ค์‹์œผ๋กœ ๋ถ„๋ฆฌํ•ด์•ผํ• ์ง€ ๊ฐ์ด ์•ˆ์˜ด ์•ŒํŒŒ๋ฒณ์„ ๋ณด๊ณ  ์•„์Šคํ‚ค์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ์˜ˆ์ „์—๋„ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ charAt()ํ•จ์ˆ˜๋ฅผ ์“ด ์ ์ด ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ, ๊ทธ๋•Œ ํ™•์‹คํžˆ ์ •๋ฆฌํ•˜์ง€ ๋ชปํ–ˆ๋‚˜๋ณด๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€ ๋• ์ƒ๊ฐ์ด ์•ˆ๋‚ฌ์Œ โœ… 1. charAt() -> String์œผ๋กœ ์ €์žฅ๋œ ๋ฌธ์ž์—ด ์ค‘, ํ•œ๊ธ€์ž๋งŒ ์„ ํƒํ•˜์—ฌ charํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ 2. ์•„์Šคํ‚ค์ฝ”๋“œ๊ฐ’ -> A-..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JAVA] ์ž์—ฐ์ˆ˜ ๋’ค์ง‘์–ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ

https://programmers.co.kr/learn/courses/30/lessons/12932 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ž์—ฐ์ˆ˜ ๋’ค์ง‘์–ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ ์ž์—ฐ์ˆ˜ n์„ ๋’ค์ง‘์–ด ๊ฐ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด n์ด 12345์ด๋ฉด [5,4,3,2,1]์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ ์กฐ๊ฑด n์€ 10,000,000,000์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ n return 12345 programmers.co.kr 1. ์šฐ์„  charํ˜• ๋ฐฐ์—ด์— ๋„ฃ๊ธฐ ์œ„ํ•ด์„œ Stringํ˜•์œผ๋กœ ๋ณ€ํ™˜ 2. Integer.parseInt๋กœ charํ˜• ๋ฐฐ์—ด์„ intํ˜• ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜, ์—ญ์ˆœ์œผ๋กœ ์ €์žฅ -> ๋นˆ๋ฌธ์ž์—ด "" ๋”ํ•ด์•ผ ํ•จ class Solution { public int[] solution(long n) { //๋ฐฐ์—ด์— ๋„ฃ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JAVA] ์ •์ˆ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

https://programmers.co.kr/learn/courses/30/lessons/12933 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ •์ˆ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐํ•จ์ˆ˜ solution์€ ์ •์ˆ˜ n์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค. n์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ํฐ๊ฒƒ๋ถ€ํ„ฐ ์ž‘์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ์ƒˆ๋กœ์šด ์ •์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด n์ด 118372๋ฉด 873211์„ ๋ฆฌํ„ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ œํ•œ ์กฐ๊ฑด n์€ 1์ดprogrammers.co.kr  ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ค์› ๋˜ ๋‚ด๋ฆผ์ฐจ์ˆœ ๋ฐฐ์น˜ 1. ์ •์ˆ˜ n์„ String์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ charํ˜• ๋ฐฐ์—ด์— ๋‹ด์Œ2. sort ๋ฉ”์„œ๋“œ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ(๊ธฐ๋ณธ๊ฐ’)3. ์—ญ์ˆœ์œผ๋กœ ์ถœ๋ ฅ4. ๋‹ค์‹œ longํ˜• ๋ณ€์ˆ˜๋กœ ๋ณ€ํ™˜ import java.util.Arrays;class Solution { public long solution(long ..