Banner

My Tech Blog (๋ฐฐ์—ด)

์ •๋ ฌ(Sort)๊ฐœ์š”๋ฐ์ดํ„ฐ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ๋˜๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์—ดํ•˜๊ฑฐ๋‚˜ ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.  ์ •๋ ฌ์„ ํ™œ์šฉํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•˜๋‹ค. ์ •๋ ฌ ๋ฌธ์ œ๋Š” ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ๋Š” ์ •๋ ฌ ๊ธฐ์ค€์„ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•˜๊ณ , ๊ทธ์— ๋งž๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ด์ง„ ํƒ์ƒ‰, ํˆฌ ํฌ์ธํ„ฐ, ๋นˆ๋„์ˆ˜ ๊ณ„์‚ฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์„ ์กฐํ•ฉํ•ด ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋“ค์ด ๋งŽ๋‹ค.  ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ Arrays.sort() ๋ฅผ ์ด์šฉํ•ด์„œ ์ •๋ ฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋„ ์žˆ๊ณ , ์ •๋ ฌ ๊ธฐ์ค€์„ ์‚ฌ์šฉ์ž ์ •์˜ ๊ฐ์ฒด์— ๋งž๊ฒŒ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, Comparator ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฐ์ฒด๋ฅผ Collections.sort() ๋˜๋Š” Arrays.sort()์— ์ „๋‹ฌํ•˜์—ฌ ์ •๋ ฌํ•˜๋ฉด ๋˜๊ณ , ์ด ๋•Œ Java 8 ์ด์ƒ์—์„œ๋Š” Comparator๋ฅผ ๋žŒ๋‹ค ํ‘œํ˜„์‹์œผ๋กœ ..
ํƒ์ƒ‰์„ ํƒ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๋ณธ ์„ ํƒ์ž๋กœ ์„ ํƒํ•œ ์š”์†Œ ์ค‘ ์›ํ•˜๋Š” ์š”์†Œ๋ฅผ ํ•œ ๋ฒˆ ๋” ํƒ์ƒ‰ํ•ด์„œ ์ข€ ๋” ์ •ํ™•ํ•˜๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„ ํƒํ•˜๋Š” `์œ„์น˜ํƒ์ƒ‰ ์„ ํƒ์ž`์™€ ๋ฐฐ์—ด์— ๋‹ด๊ฒจ์ง„ ์š”์†Œ ์ค‘ ์ง€์ •๋œ ์†์„ฑ๊ณผ ๊ฐ’์œผ๋กœ ์„ ํƒํ•˜๋Š” `์†์„ฑ ํƒ์ƒ‰ ์„ ํƒ์ž`๊ฐ€ ์žˆ๋‹ค.  1. ์œ„์น˜ ํƒ์ƒ‰ ์„ ํƒ์ž โ–ผ๊ธฐ๋ณธ ์„ ํƒ์ž๋กœ ์„ ํƒํ•œ ์š”์†Œ๋Š” ๋ฐฐ์—ด์— ๋‹ด๊ธฐ๊ฒŒ ๋œ๋‹ค.๊ทธ๋ž˜์„œ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ์š”์†Œ๋ฅผ ์ข€ ๋” ์ •ํ™•ํ•˜๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ข…๋ฅ˜์šฉ๋ฒ•์„ค๋ช…$("์š”์†Œ ์„ ํƒ:first")$("์š”์†Œ ์„ ํƒ").first()$("li:first")$("li").first()์ „์ฒด ์š”์†Œ ์ค‘ ์ฒซ๋ฒˆ์งธ ์š”์†Œ๋งŒ ์„ ํƒ$("์š”์†Œ ์„ ํƒ:last")$("์š”์†Œ ์„ ํƒ").last()$("li:last")$("li").last()์ „์ฒด ์š”์†Œ ..
๐Ÿ‘พ ๋ฌธ์ œ์ ์ฝ”ํ…Œ ๋ฌธ์ œ ํ’€๋‹ค๊ฐ€ ๋ฐœ๊ฒฌํ•œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ ์ฝ”๋“œ์™€ ๋‚ด ์ฝ”๋“œ์˜ ์ฐจ์ด์  ๋‚ด๊ฐ€ ์“ด ์ฝ”๋“œ (ํ•˜์ˆ˜์˜ ์ฝ”๋“œ)Arrays.sort(targets, (o1, o2) -> o1[1] - o2[1]); ๋‚จ์ด ์“ด ์ฝ”๋“œ (๊ณ ์ˆ˜์˜ ์ฝ”๋“œ)Arrays.sort(targets, (a, b) -> Integer.compare(a[1], b[1])); ์™œ ์ด ๋ถ„์€ Integer.compare() ๋ฉ”์„œ๋“œ๋ฅผ ์ผ์„๊นŒ?๐Ÿง ์›์ธ`Arrays.sort(targets, (o1, o2) -> o1[1] - o2[1])` ๋ฐฉ์‹์€ ๋‘ ์ •์ˆ˜์˜ ๋บ„์…ˆ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ ฌ ๊ธฐ์ค€์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐฉ์‹์€ ์•ฝ๊ฐ„์˜ ๋ฌธ์ œ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์œ„ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด intํ˜•์˜ ๋บ„์…ˆ ์—ฐ์‚ฐ ๊ณผ์ •์—์„œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ(overflow)๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, o1[..
// JSON ๋ฐ์ดํ„ฐ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ JS ์‚ฌ์šฉ๋ฒ•// [1] : ๋ฐ์ดํ„ฐ const person = [ `{"name":"์ด์ˆœ์‹ ","age":20,"nationality":"๋Œ€ํ•œ๋ฏผ๊ตญ"}`, {"name":"๋งฅ์•„๋”","age":30,"nationality":"๋ฏธ๊ตญ"}, {"name":"์—˜๋ฆฌ์ž๋ฒ ์Šค","age":40,"nationality":"์˜๊ตญ"}, {"name":"์ž”๋‹ค๋ฅดํฌ","age":50,"nationality":"ํ”„๋ž‘์Šค"},]; console.log(typeof person); // objectconsole.log(typeof person[0]); // stringconsole.log(typeof person[1]); // object ์ฒซ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ๋ฉด string ..
JSON๊ณผ XML์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ํ˜•์‹์ด๋‹ค.1. XMLXML์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ „๋‹ฌํ•  ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉฐ, ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์ˆ ํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด์ด๋ฉฐ EXtensible Markup Language์˜ ์•ฝ์ž์ด๋‹ค. - XML์€ ๋‹ค๋ฅธ ๋ชฉ์ ์˜ ๋งˆํฌ์—… ์–ธ์–ด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋‹ค๋ชฉ์  ๋งˆํฌ์—… ์–ธ์–ด- XML์€ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๋ผ๋ฆฌ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์†์‰ฝ๊ฒŒ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.- XML์€ ์ƒˆ๋กœ์šด ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค์–ด ์ถ”๊ฐ€ํ•ด๋„ ๊ณ„์†ํ•ด์„œ ๋™์ž‘ํ•˜๋ฏ€๋กœ, ํ™•์žฅ์„ฑ์ด ์ข‹๋‹ค. - XML์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ์ง€ ์•Š๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ๊ฒƒ๋งŒ์„ ๋ชฉ์ ์œผ๋กœ ํ•œ๋‹ค.- XML์€ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ ํ˜•์‹์˜ ์–ธ์–ด๋กœ ๋ชจ๋“  XML ๋ฌธ์„œ๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„๋‹ค.XML ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด XHTML, SVG,..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๋งค๊ฐœ๋ณ€์ˆ˜- ์ˆ˜์—ด์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด `sequence`- ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ `k` ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค์™€ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ฅผ ๋ฐฐ์—ด๋กœ returnํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฌธ์ œ ํˆฌํฌ์ธํ„ฐ, ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ‘ผ๋‹ค.- start: ์œˆ๋„์šฐ์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค- end: ์œˆ๋„์šฐ์˜ ๋ ์ธ๋ฑ์Šค (or ๋‹ค์Œ ํƒ์ƒ‰ํ•  ์œ„์น˜) `ํˆฌํฌ์ธํ„ฐ`ํ•˜๋‚˜์˜ ํฌ์ธํ„ฐ๋Š” ๋ฐฐ์—ด์˜ ์‹œ์ž‘์„, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋ฐฐ์—ด์˜ ๋์„ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ ์‹œ์ž‘ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ตฌ๊ฐ„์„ ์ฐพ๋Š”๊ฒƒ์ด๋‹ค.  `์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜`๋ถ€๋ถ„ ๋ฐฐ์—ด, ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ๋ฌธ์ œ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ตฌ๊ฐ„์„ ์ฐพ๊ฑฐ๋‚˜, ๊ณ ์ •๋œ ํฌ๊ธฐ ๊ตฌ๊ฐ„์˜ ํ•ฉ๊ณ„, ์ตœ๋Œ€๊ฐ’, ์ตœ์†Œ๊ฐ’ ๋“ฑ์„ ๊ตฌํ•  ๋•Œ ์œ ..
์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐ์—ด ์ •๋ ฌํ• ๋•Œ ์“ฐ๋Š” ๋ฉ”์„œ๋“œ `Arrays.sort()` ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ `Arrays.sort()`์— `Comparator` ๊ฐ์ฒด๋ฅผ ์ธ์ž๋กœ ๋ฐ›์•„์„œ ๋งž์ถคํ˜• ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.  ๊ธฐ๋ณธ `Arrays.sort()`์‚ฌ์šฉimport java.util.Arrays;public class Main { public static void main(String[] args) { Integer[] arr = {5, 2, 9, 1, 3}; // ๊ธฐ๋ณธ ์ •๋ ฌ (์˜ค๋ฆ„์ฐจ์ˆœ) Arrays.sort(arr); System.out.println(Arrays.toString(arr));..
์ค‘์š”ํ•œ ๊ฑด ์•„๋‹ˆ์ง€๋งŒํŒŒ์ด์ฌ์—์„œ ์Šฌ๋ผ์ด์‹ฑ ํ•  ๋•Œ ์ž๊พธ๋งŒ ๋จธ๋ฆฟ ์†์—์„œ ์ด๋Ÿฐ ํ˜ธ๊ธฐ์‹ฌ์ด ๋“ค์—ˆ๋‹ค.  1. ๋Œ€๊ด„ํ˜ธ์•ˆ์— ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ 2๊ฐœ์ธ ๊ฒฝ์šฐ์™€ 3๊ฐœ์ธ ๊ฒฝ์šฐ2. ์ˆซ์ž๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ3. ์ธ๋ฑ์Šค๊ฐ€ ์–‘์ˆ˜:์–‘์ˆ˜์ธ ๊ฒฝ์šฐ, ์–‘์ˆ˜:์Œ์ˆ˜์ธ ๊ฒฝ์šฐ, ์Œ์ˆ˜:์–‘์ˆ˜์ธ ๊ฒฝ์šฐ, ์Œ์ˆ˜:์Œ์ˆ˜์ธ ๊ฒฝ์šฐ ๋“ฑ 4. ์˜ค๋ฅธ์ชฝ ๋ฐฉํ–ฅ(->)์œผ๋กœ ์Šฌ๋ผ์ด์‹ฑ, ์™ผ์ชฝ ๋ฐฉํ–ฅ( ์ƒ์ƒํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์กฐํ•ฉํ•˜์—ฌ์Šฌ๋ผ์ด์‹ฑํ•ด ์ฃผ๋ฉด ๊ฒฐ๊ณผ๊ฐ’์ด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ํ•ญ์ƒ ๊ถ๊ธˆํ–ˆ๋‹ค.์ด ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ฆฌ์ŠคํŠธ ์Šฌ๋ผ์ด์‹ฑ์˜ ๋ชจ๋“  ์œ ํ˜•์„ ๊ณ„์‚ฐํ•ด์„œ์œ ํ˜•๋ณ„๋กœ ์–ด๋–ป๊ฒŒ ๋˜๋Š” ๊ฒƒ์ธ์ง€ ๊ฒฐ๊ณผ๋ฅผ ๋์žฅ์„ ๋‚ด ๋ณผ ๊ฒƒ์ด๋‹ค.ํ ์ปคํ”ผ ํ•œ ์ž”๋งŒ ๋จน๊ณ  ์‹œ์ž‘ํ•ด์•ผ๋””^^  1. ์ธ์ž 2๊ฐœ, ์ธ์ž 3๊ฐœ Python์—์„œ ์Šฌ๋ผ์ด์‹ฑ(slicing) ๊ตฌ๋ฌธ์—๋Š” ๋‘ ๊ฐ€์ง€ ๊ธฐ๋ณธ ํ˜•ํƒœ๊ฐ€ ์žˆ๋‹ค. ์ธ์ž๋ฅผ 2๊ฐœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์™€ 3๊ฐœ ์‚ฌ์šฉํ•˜๋Š”..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'๋ฐฐ์—ด' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก
์ƒ๋‹จ์œผ๋กœ