TIL : ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜, display:table ์†์„ฑ
728x90

Today, What I learned?

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊พธ์ค€ํžˆ ์Œ“์•„๊ฐ€๊ธฐ ๐Ÿ’ช ... ๋ฅผ ๊ณ„์†ํ•˜๋ฉฐ ์˜ค๋Š˜์€ ์„ธ ๊ฐ€์ง€์˜ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด js๋กœ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ ๋„ค์ด๋ฒ„ ๋ฉ”์ธํŽ˜์ด์ง€ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๋‹ค๊ฐ€ ์•Œ๊ฒŒ ๋œ display: table์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

 

 

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์ •๋ ฌ๋˜์–ด์•ผ ํ•˜๊ณ , ๊ทธ ์•ˆ์—์„œ ๊ฐ ์š”์†Œ๋ณ„๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ๋น„๊ต๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ค‘ for๋ฌธ์„ ์ด์šฉํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ๋ชจ๋‘ O(n^2)๋ฅผ ๊ฐ€์ง„๋‹ค.

 

๋ฒ„๋ธ” ์ •๋ ฌ

๋ฒ„๋ธ” ์ •๋ ฌ์€ ๋ชจ๋“  ์š”์†Œ๋“ค์„ ๋Œ€์ƒ์œผ๋กœ, ์ธ์ ‘ํ•œ ๋‘ ๊ฐ’์„ ๋น„๊ตํ•ด์„œ ์™ผ์ชฝ์˜ ๊ฐ’์ด ๋” ํฌ๋‹ค๋ฉด ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์„œ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์•„๋ž˜ ์ด๋ฏธ์ง€๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ์ดํ•ด๊ฐ€ ์ข€ ๋” ํŽธํ•˜๋‹ค!

๋ฒ„๋ธ”์ •๋ ฌ์ด ์ง„ํ–‰๋˜๋Š” ๊ณผ์ •

 

js๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ

function bubble_sort(arr) {
  let answer = [...arr];

  for (let i = 0; i < answer.length; i++) {
    for (let j = 0; j < answer.length - i; j++) {
      if (answer[j] > answer[j + 1]) {
        [answer[j + 1], answer[j]] = [answer[j], answer[j + 1]];
      }
    }
  }

  return answer;
}

๋‘ ๋ฒˆ์งธ for๋ฌธ์€ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค ์ „๊นŒ์ง€๋งŒ ๋Œ์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— (๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค ๋‹ค์Œ ๊ฐ’์€ ์—†์œผ๋‹ˆ!) answer.length-i ๋งŒํผ ๋ˆ๋‹ค.
๋‘ ์ˆ˜๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ์•ž์˜ ์š”์†Œ๊ฐ€ ๋’ค์˜ ์š”์†Œ๋ณด๋‹ค ํฌ๋‹ค๋ฉด ๋‘ ๊ฐ’์„ ๊ตํ™˜ํ•œ๋‹ค.

 

 

์„ ํƒ ์ •๋ ฌ

์„ ํƒ ์ •๋ ฌ์€ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์„ ํƒํ•ด์„œ ๋‚˜์—ดํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์„ ํƒํ•ด์„œ, ์„ ํƒ ๊ฐ’๊ณผ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ์ค‘ ์ฒซ ๋ฒˆ์งธ ์›์†Œ์™€ ๊ตํ™˜ํ•œ๋‹ค.

์„ ํƒ ์ •๋ ฌ

js๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ

function selection_sort(arr) {
  let answer = [...arr];

  for (let i = 0; i < answer.length; i++) {
    let target = i;

    for (let j = i + 1; j < answer.length; j++) {
      if (answer[j] < answer[target]) {
        target = j;
      }
    }

    [answer[i], answer[target]] = [answer[target], answer[i]];
  }

  return answer;
}

๋‚˜์˜ ๊ฒฝ์šฐ์—๋Š” ์„ ํƒ๊ฐ’์„ ์ธ๋ฑ์Šค๋กœ ์ฐพ์•˜๋‹ค.
๋‹ค์Œ ๊ฐ’์ด ์„ ํƒ๊ฐ’๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ, ์ธ๋ฑ์Šค๋ฅผ ํ•ด๋‹น ์ธ๋ฑ์Šค๋กœ ๊ต์ฒดํ•ด์„œ ๊ฐ’๋“ค์ด ๊ตํ™˜๋˜๋„๋ก ํ–ˆ๋‹ค.

 

 

์‚ฝ์ž… ์ •๋ ฌ

์‚ฝ์ž… ์ •๋ ฌ์€ ์šฐ์„  ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌ๋œ ๋ถ€๋ถ„๊ณผ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ๋ณ„ํ•œ๋‹ค.

์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์—์„œ ์ฒซ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฝ‘์•„์„œ ์ •๋ ฌ ๋ฐ์ดํ„ฐ ์ค‘ ๋ฝ‘์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์–ด์•ผ ํ•  ์ œ์ž๋ฆฌ๋ฅผ ์ฐพ์•„ ๋„ฃ๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

์‚ฝ์ž…์ •๋ ฌ ์ง„ํ–‰ ๊ณผ์ •

์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ž…๋ ฅ์ด ๊ฑฐ์˜ ์ •๋ ฌ๋œ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— O(n)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์งˆ ์ˆ˜๋„ ์žˆ๋‹ค.

ํ•„์š”ํ•  ๋•Œ๋งŒ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์ด๋ผ๊ณ ๋„ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์‚ฝ์ž…๋  ์œ„์น˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ํ•œ ๋ฒˆ์— ํ•œ ์ž๋ฆฌ์”ฉ๋งŒ ์ด๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์ด๋™ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

 

 

js๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ

function insertion_sort(arr) {
  let answer = [...arr];

  // i+1๋ถ€ํ„ฐ ์•ž์˜ ์ˆ˜๋ณด๋‹ค ์ž‘๋‹ค๋ฉด? j=0๊นŒ์ง€ ๋Œ์•„๊ฐ€๋ฉฐ ๋งž๋Š” ์ž๋ฆฌ๋กœ ๊ต์ฒด
  for (let i = 1; i < answer.length; i++) {
    let target = i;

    for (let j = i; j >= 0; j--) {
      if (answer[target] < answer[j]) {
        [answer[target], answer[j]] = [answer[j], answer[target]];
        target--;
      }
    }
  }

  return answer;
}

์„ ํƒ์ •๋ ฌ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์ด๋ฒˆ์—๋„ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ–ˆ๋‹ค.
์„ ํƒ ๊ฐ’์—์„œ ๊ฑฐ๊พธ๋กœ ๋Œ์•„๊ฐ€๋ฉฐ ์ž๊ธฐ ์ž๋ฆฌ์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์•„์„œ ๊ฐ’์„ ๊ตํ™˜ํ•˜๋Š” ๋ฐฉ์‹!

 

 

 

display: table

css์˜ display ์†์„ฑ ๊ฐ’์œผ๋กœ๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ block, inline-block, none, flex, grid.. ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ๋Š”๋ฐ,

ํ‘œ์ฒ˜๋Ÿผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ ๊ฐ’๋“ค๋„ ์žˆ๋‹ค.

 

์ด๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์„ ๋•Œ, table ํƒœ๊ทธ๋„ ์ด๋ฏธ ์žˆ๋Š”๋ฐ display ์†์„ฑ ๊ฐ’์— table ๊ด€๋ จ ์†์„ฑ๋“ค์ด ๋งŽ์€ ์ด์œ ๊ฐ€ ๋ญ”์ง€??... ๐Ÿค” ํ•˜๋Š” ์˜๋ฌธ์ด ๋“ค์—ˆ๋Š”๋ฐ,

์ด ์†์„ฑ์€ ๋ง ๊ทธ๋Œ€๋กœ css ์†์„ฑ์ด๊ธฐ ๋•Œ๋ฌธ์—, ํ‘œ ๊ฐ™์€ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค!..

 

์ƒ๊ฐ๋ณด๋‹ค ์ข…๋ฅ˜๊ฐ€ ๋” ๋งŽ์•˜์ง€๋งŒ ๋Œ€๋žต์ ์œผ๋กœ ์ด ์ •๋„๋งŒ ์•Œ์•„๋„ ๊ดœ์ฐฎ๊ฒ ๋‹ค ์‹ถ๋‹ค.

  • table :  <table> ํƒœ๊ทธ์ฒ˜๋Ÿผ ์‚ฌ์šฉ
  • table-cell : display:table ์ด ์„ ์–ธ๋œ ๋ถ€๋ชจ ์š”์†Œ ์•„๋ž˜์— <td> ํƒœ๊ทธ์ฒ˜๋Ÿผ ์‚ฌ์šฉ.
  • table-row : display:table ์ด ์„ ์–ธ๋œ ๋ถ€๋ชจ ์š”์†Œ ์•„๋ž˜์— <tr> ํƒœ๊ทธ์ฒ˜๋Ÿผ ์‚ฌ์šฉ.

(์™ผ) table-cell ์ง€์ •์‹œ, (์˜ค) table-row ์ง€์ •์‹œ

table-cell ์ง€์ •์‹œ์—๋Š” ๊ฐ™์€ ๋„ˆ๋น„๋กœ ๊ฐ€๋กœ ์ •๋ ฌ๋˜๋Š” ๊ฒƒ์„, table-row ์ง€์ •์‹œ์—๋Š” ๊ฐ™์€ ์„ธ๋กœ ๋†’์ด๋กœ ์„ธ๋กœ ์ •๋ ฌ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

์–ด๋–ป๊ฒŒ ์“ฐ์ด๋‚˜?

๋Œ€ํ‘œ์ ์œผ๋กœ ๋„ค์ด๋ฒ„ ๋ฉ”์ธ ํŽ˜์ด์ง€์—์„œ gnb ํƒญ์˜ ๋”๋ณด๊ธฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋‚˜์˜ค๋Š” ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๊ฐ€ ์žˆ๋‹ค.

๋„ค์ด๋ฒ„์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋‰ด์ธ๋ฐ, ์ „์ฒด๊ฐ€ display:table ๋กœ ์ง€์ •์ด ๋˜์–ด์žˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ํ•˜๋‹จ ์ž์‹ ์š”์†Œ๋“ค์€ table-cell ์ด๋ผ๋Š” ์†์„ฑ์„ ๊ฐ–๊ณ  ์žˆ์–ด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฐ€๋กœ ์ •๋ ฌ๋˜๋ฉฐ ๋™์ผํ•œ ๋„ˆ๋น„๋“ค์„ ๊ฐ–๋Š”๋‹ค.

๋™์ผํ•œ ๋„ˆ๋น„๋ฅผ ๊ฐ€์ง„๋‹ค๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ด ์†์„ฑ์„ ์ด๋ ‡๊ฒŒ ๋งŽ์€ ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ๋Š” ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด์—์„œ ์จ๋ณผ ์ด์œ ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์„๊นŒ!..

 

ํ˜ธํ™˜์„ฑ์€ ์–ด๋–ค์ง€?

 

Can I use ์—์„œ ์ฐพ์•„๋ณธ ํ˜ธํ™˜์„ฑ...

๋‚˜๋ฆ„ ์ตœ๊ทผ์˜ IE์—์„œ๋„ ์ง€์›์„ ํ•ด์ฃผ๋Š”!... ์ƒ๊ฐ๋ณด๋‹ค ๊ดœ์ฐฎ์€ ํ˜ธํ™˜์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๐Ÿ™Œ

 

 

 

 

ํŒ€์›๋“ค๊ณผ ๋ชจ๋ ˆ ๊นƒ ํ˜‘์—… ์—ฐ์Šต์„ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.
๊นƒ์— ๋” ์ต์ˆ™ํ•ด์ ธ๋ณด์ž~ ๐Ÿ™Œ

 

 

 

728x90