๋”ฐํŒŒ๐Ÿ•
Hwaiian Pizza IT Pub
๋”ฐํŒŒ๐Ÿ•
  • ALL (62)
    • Front-End (13)
      • HTML & CSS (2)
      • JavaScript (7)
      • React (2)
      • TypeScript (0)
      • Jquery (0)
      • Git (1)
      • Editor (0)
    • Algorithms (44)
      • Baekjoon (28)
      • Programmers (13)
      • Algorithms (3)
    • Computer Science (0)
      • Math (0)
    • Conference (1)
    • Life (3)
      • Book (0)
hELLO ยท Designed By ์ •์ƒ์šฐ.
๋”ฐํŒŒ๐Ÿ•

Hwaiian Pizza IT Pub

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ฒด์œก๋ณต
Algorithms/Programmers

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ฒด์œก๋ณต

2022. 5. 19. 08:00
๋ฐ˜์‘ํ˜•

 

Question

 

 

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

 

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ ์„ค๋ช…

์˜ˆ์ œ #1
1๋ฒˆ ํ•™์ƒ์ด 2๋ฒˆ ํ•™์ƒ์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๊ณ , 3๋ฒˆ ํ•™์ƒ์ด๋‚˜ 5๋ฒˆ ํ•™์ƒ์ด 4๋ฒˆ ํ•™์ƒ์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ฉด ํ•™์ƒ 5๋ช…์ด ์ฒด์œก์ˆ˜์—…์„ ๋“ค์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์˜ˆ์ œ #2
3๋ฒˆ ํ•™์ƒ์ด 2๋ฒˆ ํ•™์ƒ์ด๋‚˜ 4๋ฒˆ ํ•™์ƒ์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ฉด ํ•™์ƒ 4๋ช…์ด ์ฒด์œก์ˆ˜์—…์„ ๋“ค์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 


 

 

My Code

 

์ฐธ๊ณ  : ์ฝ”๋“œ์˜ ์ง„ํ™”๊ณผ์ •์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค  ๐Ÿ˜Ž

 

 

 

 

 

์ฝ”๋“œ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ํ†ต๊ณผํ–ˆ์ง€๋งŒ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๊ฑธ๋ ค ์‹คํŒจํ•œ ์ฝ”๋“œ์ด๋‹ค.

function solution(n, lost, reserve) {
    let lostLength = lost.length;
    let answer =  n - lostLength;
    let arr = [];

    for (let i = 0 ; i < lostLength ; i ++) {
        if (reserve.includes(lost[i] - 1 )) {
            answer += 1 ;
            reserve = reserve.filter ((ele) => ele !== lost[i] - 1 )
        }
        else if (reserve.includes(lost[i] + 1)) {
            answer += 1;
            reserve = reserve.filter((ele) => ele !== lost[i] + 1)
        }
    }
    return answer;
}

 

WHY?

lost์™€ reserve์— ๋‘˜๋‹ค ์†ํ•ด์žˆ๋Š” ํ•™์ƒ์ˆ˜๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜๋‹ค.

๋งŒ์•ฝ์— ๋‘˜๋‹ค ์†ํ•ด ์žˆ๋‹ค๋ฉด ๊ฒฐ๊ตญ์—๋Š” ๋นŒ๋ ค์ค„ ์ฒด์œก๋ณต์€ ์—†๊ณ  ์ž์‹ ์˜ ์ฒด์œก๋ณต๋งŒ ์ž…์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋ฏ€๋กœ

reserve์™€ lost์—์„œ ์‚ญ์ œํ•˜๊ณ  ์ฒด์œก์ˆ˜์—…์„ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ์ธ์›์ˆ˜์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค.

ํ•ญ์ƒ ์ด๋Ÿฐ ๊ฒฝ์šฐ์˜์ˆ˜๋ฅผ ๊นŒ๋จน๋Š”๋‹ค! ์žŠ์ง€ ๋ง์ž!

 

 

 

์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ ๋˜ ํ‹€๋ ธ๋‹ค.

function solution(n, lost, reserve) {
    let lostLength = lost.length;
    let answer =  n - lostLength;
    
    // ์ฒด์œก๋ณต๋„ ์žƒ์–ด๋ฒ„๋ฆฌ๊ณ  ์—ฌ๋ถ„์˜ ์ฒด์œก๋ณต๋„ ๋™์‹œ์— ์žˆ๋Š” ๊ฒฝ์šฐ
    for (let i = 0; i < lostLength ; i ++) {
        if (reserve.includes(lost[i])) {
            reserve = reserve.filter((ele) => ele !== lost[i])
            answer += 1;
        } else {
            tmp.push(lost[i]);
        }
    }

    for (let i = 0 ; i < lostLength ; i ++) {
        if (reserve.includes(lost[i] - 1 )) {
            answer += 1 ;
            reserve = reserve.filter ((ele) => ele !== lost[i] - 1 )
        }
        else if (reserve.includes(lost[i] + 1)) {
            answer += 1;
            reserve = reserve.filter((ele) => ele !== lost[i] + 1)
        }
    }
    return answer;
}

 

WHY?

๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณด๋‹ˆ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์ •๋ ฌํ•ด์„œ ๋“ค์–ด์˜ค์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

์•„๋‹ˆ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์•ผ ๊ทธ๋Ÿฐ ๊ฑฐ๊นŒ์ง€ ์ผ์ผ์ด ๋ง ์•ˆ ํ•ด์ฃผ์—ˆ์ž–๋‹ˆ?

๋‚ด๊ฐ€ ๊ทธ๊ฑธ ์–ด๋–ป๊ฒŒ ์•„๋‹ˆ? ๐Ÿคท‍โ™‚๏ธ

sort() ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ํ†ต๊ณผํ–ˆ๋‹ค.

 

 

 

์•„๋ž˜๊ฐ€ ๋ชจ๋“  ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ํ†ต๊ณผํ•œ ์ฝ”๋“œ!

function solution(n, lost, reserve) {
    let lostLength = lost.length;
    let answer =  n - lostLength;
    let tmp = [];
    
    // ์ฒด์œก๋ณต๋„ ์žƒ์–ด๋ฒ„๋ฆฌ๊ณ  ์—ฌ๋ถ„์˜ ์ฒด์œก๋ณต๋„ ๋™์‹œ์— ์žˆ๋Š” ๊ฒฝ์šฐ
    for (let i = 0; i < lostLength ; i ++) {
        if (reserve.includes(lost[i])) {
            reserve = reserve.filter((ele) => ele !== lost[i])
            answer += 1;
        } else {
            tmp.push(lost[i]);
        }
    }
    // ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ๋“ค์–ด์˜ฌ ์ž…๋ ฅ์„ ๋Œ€๋น„ํ•ด ์ •๋ ฌํ•ด์คŒ
    lost = tmp.sort();
    
    for (let i = 0 ; i < lostLength ; i ++) {
        if (reserve.includes(lost[i] - 1 )) {
            answer += 1 ;
            reserve = reserve.filter ((ele) => ele !== lost[i] - 1 )
        }
        else if (reserve.includes(lost[i] + 1)) {
            answer += 1;
            reserve = reserve.filter((ele) => ele !== lost[i] + 1)
        }
    }
    return answer;
}

 

 

 

 

 

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด ์ค‘์— ์—„์ฒญ๋‚œ ๊ฑธ ๋ฐœ๊ฒฌํ–ˆ๋‹ค!

๊ฐ€๋…์„ฑ๋„ ์ข‹๊ณ  ์ง„์งœ ๊น”๋”ํ•œ ์ฝ”๋“œ!

์ดˆ๋ณด์ธ ๋‚ด๊ฐ€ ๋ด๋„ ๊ดœ์ฐฎ์€ ์ฝ”๋“œ!

๊ทธ๋ž˜์„œ ๊ฐ€์ ธ์™€๋ดค๋‹ค.

(ํ˜น์‹œ ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๊ผญ ์•Œ๋ ค์ฃผ์‹œ๊ธธ)

 

function solution(n, lost, reserve) {
    const realReserve = reserve.filter(r => !lost.includes(r));
    const realLost = lost.filter(r => !reserve.includes(r));

    // const reserveNum = reserve.lenght - realReserve.length;

    const ableNum = realLost.filter(a => {
        return realReserve.find((b, i) => {
            const has = b === a-1 || b === a+1;
            if (has) {
                delete realReserve[i];
            }
            return has;
        });
    }).length;
    return n - (realLost.length - ableNum);
}

์ถœ์ฒ˜ : ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / - , chifuyu1 , doi-h , Five1star , seo2im ์™ธ 6๋ช…์ด ํ‘ผ ์ฝ”๋“œ

 

 

 

์ด ์ฝ”๋“œ๋ฅผ ์™œ ์ข‹๋‹ค๊ณ  ๋А๋‚€ ๊ฒƒ์ผ๊นŒ?

 

  • ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค.
  • ๋ฉ”์„œ๋“œ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ํ™œ์šฉํ–ˆ๋‹ค.
  • ์ค‘๋ณต๋˜๊ฑฐ๋‚˜ ๋น„์Šทํ•œ ์ฝ”๋“œ๊ฐ€ ์—†๋‹ค.
  • ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ์ดํ•ด๊ฐ€ ๊ฐ„๋‹ค.
  • delete๋ผ๋Š” ์—ฐ์‚ฐ์ž๋ฅผ ์•Œ์•„๋ƒˆ๋‹ค.

 

 

 

์ถ”๊ฐ€๋œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋“ค ์ค‘์— ํ†ต๊ณผ ์•ˆ ๋˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์ง€๋งŒ

์ฝ”๋“œ๋ฅผ ์ด๋ ‡๊ฒŒ ์“ธ ์ˆ˜๋„ ์žˆ๊ตฌ๋‚˜ ๋ฐฐ์šฐ๊ฒŒ ๋๋‹ค.

๋‚˜๋„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ„์†ํ•ด์„œ ๋งŽ์€ ์ฝ”๋“œ๋ฅผ ๋ด์•ผ๊ฒ ๋‹ค.

์ฝ”๋“œ์— ์ •๋‹ต์ด ์—†๋‹ค๋Š” ๊ฒŒ ์žฌ๋ฐŒ๋‹ค.

๋‚ด๊ฐ€ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๊ฐ„๋‹ค.

 

 

 

 

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Algorithms > Programmers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ž์—ฐ์ˆ˜ ๋’ค์ง‘์–ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ  (0) 2022.05.22
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ด์ƒํ•œ ๋ฌธ์ž ๋งŒ๋“ค๊ธฐ  (0) 2022.05.20
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ •์ˆ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ  (0) 2022.05.17
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ํ•˜์ƒค๋“œ ์ˆ˜  (0) 2022.05.14
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ฝœ๋ผ์ธ  ์ถ”์ธก  (0) 2022.05.13
    'Algorithms/Programmers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ž์—ฐ์ˆ˜ ๋’ค์ง‘์–ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ
    • [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ด์ƒํ•œ ๋ฌธ์ž ๋งŒ๋“ค๊ธฐ
    • [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ •์ˆ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ
    • [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ํ•˜์ƒค๋“œ ์ˆ˜
    ๋”ฐํŒŒ๐Ÿ•
    ๋”ฐํŒŒ๐Ÿ•
    ์ €์ชฝ ์†๋‹˜์ด ๋ณด๋‚ด์‹  ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค. ๋””๋ฒ„๊น… ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?๐Ÿน

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”