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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ51

[1. ๋ฐฐ์—ด/๋ฌธ์ž์—ด] ์ค‘๋ณตํ™•์ธ, ์ˆœ์—ดํ™•์ธ, URLify(๋Œ€์ฒด), ํšŒ๋ฌธ์ˆœ์—ด, ํ•˜๋‚˜๋นผ๊ธฐ, ๋ฌธ์ž์—ด์••์ถ•, ํ–‰๋ ฌํšŒ์ „, 0ํ–‰๋ ฌ, ๋ฌธ์ž์—ดํšŒ์ „ [ Q1. ์ค‘๋ณต์ด ์—†๋Š”๊ฐ€ ] ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„ ๊ฒฝ์šฐ, ์ด ๋ฌธ์ž์—ด์— ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์ค‘๋ณต๋˜์–ด ๋“ฑ์žฅํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž‘์„ฑํ•˜๋ผ. ์ถ”๊ฐ€์ ์œผ๋กœ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€์•Š๊ณ  ํ’€ ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—ญ์‹œ ์ž‘์„ฑํ•˜๋ผ. - ๋‚ด ํ’€์ด - 1. ๋ฌธ์ž์—ด์„ char๋ฐฐ์—ด์— ๋„ฃ๊ธฐ 2. ๊ฐ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๋ฐ˜๋ณต์ฒ˜๋ฆฌ > hashmap์— ์žˆ๋‹ค๋ฉด ์ค‘๋ณต์žˆ์Œ ์ข…๋ฃŒ, ์—†๋‹ค๋ฉด hashmap์— ์š”์†Œ๋กœ ์ถ”๊ฐ€ boolean charDup(String s) { char[] char_set=s.toCharArray(); HashMap map=new HashMap(); for(char c:char_set) { if(map.containsKey(c)) { return true; } else { map.put(c, 0); } } return false; } ๋”๋ณด๊ธฐ *.. 2020. 8. 25.
[1.๋ฐฐ์—ด/๋ฌธ์ž์—ด] HashTable, ArrayList(๊ฐ€๋ณ€๋ฐฐ์—ด), StringBuilder 1. ๋ฐฐ์—ด๊ณผ ๋ฌธ์ž์—ด : ๋‘˜์˜ ๋ฌธ์ œํ’€์ด๋Š” ๋Œ€์ฒด ๊ฐ€๋Šฅ 2. ํ•ด์‹œํ…Œ์ด๋ธ”(HashTable) : ํšจ์œจ์ ์ธ ํƒ์ƒ‰์„ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ : ํ‚ค(Key)๋ฅผ ๊ฐ’(Value)์— ๋Œ€์‘ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(LinkedList) + ํ•ด์‹œ์ฝ”๋“œํ•จ์ˆ˜(HashCodeFuction) 1 Key์˜ ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ๊ณ„์‚ฐ : ๋ณดํ†ต int ๋˜๋Š” longํ˜• ์‚ฐ์ถœ (์ด๋•Œ key๊ฐ’์€ ๋ฌดํ•œํ•˜์ง€๋งŒ int๋Š” ์œ ํ•œํ•˜๋ฏ€๋กœ ํ•ด์‹œ์ฝ”๋“œ์˜ ์ค‘๋ณต์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์  ์œ ์˜) 2 ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ(e.g. hash(key)%array_length) ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค ๊ตฌํ˜„ 3 ๋ฐฐ์—ด์˜ ๊ฐ ์ธ๋ฑ์Šค์— ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(ํ‚ค+๊ฐ’)๋ฅผ ์ €์žฅ ์ด๋•Œ, ์ถฉ๋Œ์— ๋Œ€๋น„ํ•˜์—ฌ ๋ฐ˜๋“œ์‹œ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•œ๋‹ค. * ์ถฉ๋Œ์ด ์ž์ฃผ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด O(N), ์ตœ์ ํ™” ๋œ ๊ฒฝ์šฐ O(1) 1 ์ฃผ์–ด์ง„ ํ‚ค๋กœ๋ถ€ํ„ฐ ํ•ด์‹œ์ฝ”๋“œ ๊ณ„์‚ฐ 2 ๊ณ„์‚ฐํ•œ ํ•ด์‹œ์ฝ”.. 2020. 8. 23.
๋น„ํŠธ ๋ฒกํ„ฐ(bit Vector) ๋น„ํŠธ ๋ฒกํ„ฐ : ์ค‘๋ณต๋˜์ง€์•Š๋Š” ์ •์ˆ˜์ง‘ํ•ฉ์„ ๋น„ํŠธ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ์‹ - ์ž๋ฆฌ์— ํ•ด๋‹นํ•˜๋Š” ์ˆ˜์— 0,1์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ : ๋ฉ”๋ชจ๋ฆฌ์˜ ์‚ฌ์šฉ์„ ํฌ๊ฒŒ ๊ฐ์†Œ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์  ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ •์ˆ˜์ง‘ํ•ฉ {1,3,5,6}์„ ํ‘œํ˜„ํ•˜๋ฉฐ 0~7๊นŒ์ง€์˜ ๋ฒ”์œ„๋งŒ ํ‘œํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฒจ์šฐ 1Byte์˜ ๊ณต๊ฐ„๋งŒ ํ•„์š” ๋น„ํŠธ์—ฐ์‚ฐ์ž ๊ธฐํ˜ธ ์—ฐ์‚ฐ์ž๋ช… ๊ธฐ๋Šฅ right ์—ฐ์‚ฐ์ž ๋น„ํŠธ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ด (์–‘์ˆ˜๊ธฐ์ค€ : x/2^n - ๋ชซ๋งŒ์‚ฌ์šฉ) & AND ์—ฐ์‚ฐ์ž ๋ชจ๋‘ 1์ด๋ฉด 1 > ํŠน์ •๋น„ํŠธ๊ฐ’์„ 0์œผ๋กœ ๋งŒ๋“ค๊ณ ์‹ถ์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ ^ XOR ์—ฐ์‚ฐ์ž ๋‘˜์ด ๋‹ค๋ฅด๋ฉด 1 | OR ์—ฐ์‚ฐ์ž 1๊ฐœ๋ผ๋„ 1์ด๋ฉด 1 > ํŠน์ •๋น„ํŠธ๊ฐ’์„ 1๋กœ ๋งŒ๋“ค๊ณ ์‹ถ์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ 2020. 8. 23.
์•„์Šคํ‚ค(ASCII)์ฝ”๋“œ์™€ ์œ ๋‹ˆ์ฝ”๋“œ(Unicode) * ์ปดํ“จํ„ฐ์˜ ๊ธฐ๋ณธ์ €์žฅ๋‹จ์œ„ : ๋ฐ”์ดํŠธ(Byte) = 8bit * ๋”ฐ๋ผ์„œ 1Byte์—๋Š” 1bit๋Š” 0,1 ๋‘๊ฐ€์ง€ ๊ฐ’์„ ํฌํ•จํ•˜๋ฏ€๋กœ ์ด 2^8(=256)๊ฐœ์˜ ๊ฐ’ ์ €์žฅ ๊ฐ€๋Šฅ * ๋ฌธ์ž์ธ์ฝ”๋”ฉ(Encording) : ๋ฌธ์ž๋‚˜ ๊ธฐํ˜ธ์˜ ์ง‘ํ•ฉ์„ ์ปดํ“จํ„ฐ์— ์ €์žฅํ•˜๊ฑฐ๋‚˜, ํ†ต์‹ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ถ€ํ˜ธ๋กœ ๋ณ€ํ™˜ ์•„์Šคํ‚ค(ASCII, American Standard Code for Information Interchange) : ๋ฏธ๊ตญ์—์„œ ์ •์˜ํ•œ ๋ถ€ํ˜ธ์ฒด๊ณ„์˜ ํ‘œ์ค€ : ์•„์Šคํ‚ค์ฝ”๋“œ๋Š” 8๋น„ํŠธ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ 7bit(128๊ฐœ)์˜ ๊ฐ’๋งŒ ์‚ฌ์šฉ : ๋‚˜๋จธ์ง€ 1๋น„ํŠธ๋Š” ํ†ต์‹ ์—๋Ÿฌ ๊ฒ€์ถœ์„์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค = Parity Bit : ์ด๋Š” '์˜๋ฌธ ํ‚ค๋ณด๋“œ'๋กœ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅ์„ฑ์„ ๋‹ด์•˜์ง€๋งŒ, ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ์—๋Š” ๋ถ€์กฑ : ๋”ฐ๋ผ์„œ 8bi.. 2020. 8. 23.