๐ŸŸฃ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ์ •๋ฆฌ

๊น€ํƒœ์šฑยท2023๋…„ 8์›” 14์ผ
0

๐Ÿ˜ญ ๋ฌธ์ œ ํ•ฅ์ง #1

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv0 : ์ง์‚ฌ๊ฐํ˜• ๋„“์ด ๊ตฌํ•˜๊ธฐ

๋ฌธ์ œ ์„ค๋ช…
2์ฐจ์› ์ขŒํ‘œ ํ‰๋ฉด์— ๋ณ€์ด ์ถ•๊ณผ ํ‰ํ–‰ํ•œ ์ง์‚ฌ๊ฐํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ง์‚ฌ๊ฐํ˜• ๋„ค ๊ผญ์ง“์ ์˜ ์ขŒํ‘œ [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” ๋ฐฐ์—ด dots๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ง์‚ฌ๊ฐํ˜•์˜ ๋„“์ด๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • dots์˜ ๊ธธ์ด = 4
  • dots์˜ ์›์†Œ์˜ ๊ธธ์ด = 2
  • -256 < dots[i]์˜ ์›์†Œ < 256
  • ์ž˜๋ชป๋œ ์ž…๋ ฅ์€ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

dotsresult
[[1, 1], [2, 1], [2, 2], [1, 2]]1
[[-1, -1], [1, 1], [1, -1], [-1, 1]]4
  • ์ขŒํ‘œ [[1, 1], [2, 1], [2, 2], [1, 2]] ๋ฅผ ๊ผญ์ง“์ ์œผ๋กœ ๊ฐ–๋Š” ์ง์‚ฌ๊ฐํ˜•์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ๊ธธ์ด๋Š” ๊ฐ๊ฐ 1, 1์ด๋ฏ€๋กœ ์ง์‚ฌ๊ฐํ˜•์˜ ๋„“์ด๋Š” 1 x 1 = 1์ž…๋‹ˆ๋‹ค.

  • ์ขŒํ‘œ [[-1, -1], [1, 1], [1, -1], [-1, 1]]๋ฅผ ๊ผญ์ง“์ ์œผ๋กœ ๊ฐ–๋Š” ์ง์‚ฌ๊ฐํ˜•์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ๊ธธ์ด๋Š” ๊ฐ๊ฐ 2, 2์ด๋ฏ€๋กœ ์ง์‚ฌ๊ฐํ˜•์˜ ๋„“์ด๋Š” 2 x 2 = 4์ž…๋‹ˆ๋‹ค.


๋‚˜์˜ ํ’€์ด

function solution(dots) {
    let garo= 0;
    let sero= 0;
    
    for(let i=0; i < dots.length-1; i++){
        const [x,y] = dots[i]
        const [nx,ny] = dots[i+1]
        
        garo = Math.max(Math.abs(nx-x), garo)
        sero = Math.max(Math.abs(ny-y), sero)
    }

    
    return garo * sero
}

๐Ÿ’ก ์ž…/์ถœ๋ ฅ ์ ‘๊ทผ
1. ์ง์‚ฌ๊ฐํ˜•์˜ ๋„“์ด๋ฅผ ๊ตฌํ•˜๋Š” ๊ณต์‹์€ ๊ฐ€๋กœ x ์„ธ๋กœ
2. ๊ฐ ๋ณ€์˜ ๊ธธ์ด๋ฅผ ์•Œ์•„๋‚ด์•ผ ํ•จ.
3. ๋žœ๋ค์œผ๋กœ ์ž…๋ ฅ๋˜๋Š” ๊ฐ ๊ผญ์ง€์ ์˜ ํฌ์ธํŠธ๋“ค
3-1. ์ž…๋ ฅ ๊ฐ’์˜ dots์˜ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜์—ฌ ๊ฐ ๊ฐ’์˜ ํฌ์ธํŠธ๋ฅผ ๊ตฌ์กฐ๋ถ„ํ•ด ํ• ๋‹น์œผ๋กœ ์ •์˜.
3-2. ๋‹ค์Œ ํฌ์ธํŠธ๊นŒ์ง€ ํ•œ๋ฒˆ์— ๊ตฌํ•ด์„œ ๋ชจ๋‘๋ฅผ ํ•ฉ์‚ฐํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜ ์ค‘
4. ๋ณ€์˜ ๊ธธ์ด๋ฅผ ๊ฐ€์งˆ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ถ”์ถœ.
4-1. for๋ฌธ ์•ˆ์— ์‹์„ ์ž‘์„ฌํ•จ์œผ๋กœ์จ ๊ณ„์†ํ•ด์„œ max๊ฐ€ ๋˜๋Š” ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•˜์—ฌ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ฐพ์•„๋ƒ„.
5. return ๊ฐ€๋กœ x ์„ธ๋กœ


๐Ÿ˜ญ ๋ฌธ์ œ ํ•ฅ์ง #2

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv0 : ์บ๋ฆญํ„ฐ์˜ ์ขŒํ‘œ

๋ฌธ์ œ ์„ค๋ช…
๋จธ์“ฑ์ด๋Š” RPG๊ฒŒ์ž„์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„์—๋Š” up, down, left, right ๋ฐฉํ–ฅํ‚ค๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ฐ ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ์œ„, ์•„๋ž˜, ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ์นธ์”ฉ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด [0,0]์—์„œ up์„ ๋ˆ„๋ฅธ๋‹ค๋ฉด ์บ๋ฆญํ„ฐ์˜ ์ขŒํ‘œ๋Š” [0, 1], down์„ ๋ˆ„๋ฅธ๋‹ค๋ฉด [0, -1], left๋ฅผ ๋ˆ„๋ฅธ๋‹ค๋ฉด [-1, 0], right๋ฅผ ๋ˆ„๋ฅธ๋‹ค๋ฉด [1, 0]์ž…๋‹ˆ๋‹ค. ๋จธ์“ฑ์ด๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐฉํ–ฅํ‚ค์˜ ๋ฐฐ์—ด keyinput์™€ ๋งต์˜ ํฌ๊ธฐ board์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์บ๋ฆญํ„ฐ๋Š” ํ•ญ์ƒ [0,0]์—์„œ ์‹œ์ž‘ํ•  ๋•Œ ํ‚ค ์ž…๋ ฅ์ด ๋ชจ๋‘ ๋๋‚œ ๋’ค์— ์บ๋ฆญํ„ฐ์˜ ์ขŒํ‘œ [x, y]๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

  • [0, 0]์€ board์˜ ์ • ์ค‘์•™์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด board์˜ ๊ฐ€๋กœ ํฌ๊ธฐ๊ฐ€ 9๋ผ๋ฉด ์บ๋ฆญํ„ฐ๋Š” ์™ผ์ชฝ์œผ๋กœ ์ตœ๋Œ€ [-4, 0]๊นŒ์ง€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ตœ๋Œ€ [4, 0]๊นŒ์ง€ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œํ•œ์‚ฌํ•ญ

  • board์€ [๊ฐ€๋กœ ํฌ๊ธฐ, ์„ธ๋กœ ํฌ๊ธฐ] ํ˜•ํƒœ๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
  • board์˜ ๊ฐ€๋กœ ํฌ๊ธฐ์™€ ์„ธ๋กœ ํฌ๊ธฐ๋Š” ํ™€์ˆ˜์ž…๋‹ˆ๋‹ค.
  • board์˜ ํฌ๊ธฐ๋ฅผ ๋ฒ—์–ด๋‚œ ๋ฐฉํ–ฅํ‚ค ์ž…๋ ฅ์€ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
  • 0 โ‰ค keyinput์˜ ๊ธธ์ด โ‰ค 50
  • 1 โ‰ค board[0] โ‰ค 99
  • 1 โ‰ค board[1] โ‰ค 99
  • keyinput์€ ํ•ญ์ƒ up, down, left, right๋งŒ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

keyinputboardresult
["left", "right", "up", "right", "right"][11, 11][2,1]
["down", "down", "down", "down", "down"][7, 9][0, -4]
  • [0, 0]์—์„œ ์™ผ์ชฝ์œผ๋กœ ํ•œ ์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ์นธ ์œ„๋กœ ํ•œ ์นธ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋‘ ์นธ ์ด๋™ํ•œ ์ขŒํ‘œ๋Š” [2, 1]์ž…๋‹ˆ๋‹ค.

  • [0, 0]์—์„œ ์•„๋ž˜๋กœ ๋‹ค์„ฏ ์นธ ์ด๋™ํ•œ ์ขŒํ‘œ๋Š” [0, -5]์ด์ง€๋งŒ ๋งต์˜ ์„ธ๋กœ ํฌ๊ธฐ๊ฐ€ 9์ด๋ฏ€๋กœ ์•„๋ž˜๋กœ๋Š” ๋„ค ์นธ์„ ๋„˜์–ด์„œ ์ด๋™ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ [0, -4]๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.


๋‚˜์˜ ํ’€์ด

function solution(keyinput, board) {
    let x = 0;
    let y = 0;
    const maxXsize = Math.floor(board[0]/2)
    const maxYsize = Math.floor(board[1]/2)
    
    for(let i =0; i < keyinput.length; i++){
        let item = keyinput[i]
        if(item === 'left' && x > -maxXsize ) {
            x--
        }
        if(item === 'right' && x < maxXsize){
            x++
        }
        if(item === 'up'&& y < maxYsize){
            y++
        }
        if(item === 'down'&& y > -maxYsize){
            y--
        }
    }
    return [x, y]
}

๐Ÿ’ก ์ž…/์ถœ๋ ฅ ์ ‘๊ทผ
1. ์กฐ๊ฑด๋ณด๋‹ค๋Š” keyinput์˜ ์ž…๋ ฅ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜์—ฌ ๊ฐ๊ฐ์˜ ํ‚ค์›Œ๋“œ๋ฅผ ์–ป์Œ
2. if ์กฐ๊ฑด์„ ํ†ตํ•ด ํ•ด๋‹น ํ‚ค์›Œ๋“œ์— ๋งž๊ฒŒ x, y ๊ฐ’์„ ๋”ํ•˜๊ฑฐ๋‚˜ ๋บŒ
3. ํ•˜์ง€๋งŒ board์˜ ์ตœ๋Œ€, ์ตœ์†Œ ๊ฐ’ ๋•Œ๋ฌธ์— board ๊ฐ’์˜ ๊ฒฝ๊ณ„ ์•ˆ์—์„œ ์›€์ง์—ฌ์•ผ ํ•˜๋Š” ์บ๋ฆญํ„ฐ.
4. ์ ˆ๋ฐ˜์„ ๋‚˜๋ˆˆ ๊ฐ’์„ ์ตœ๋Œ€ ๊ฐ’์œผ๋กœ ์ •ํ•œ ํ›„ && ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.
5. return [x, y]


๐Ÿ˜ญ ๋ฌธ์ œ ํ•ฅ์ง #3

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv0 : ๋‹คํ•ญ์‹ ๋”ํ•˜๊ธฐ

๋ฌธ์ œ ์„ค๋ช…
ํ•œ ๊ฐœ ์ด์ƒ์˜ ํ•ญ์˜ ํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์‹์„ ๋‹คํ•ญ์‹์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹คํ•ญ์‹์„ ๊ณ„์‚ฐํ•  ๋•Œ๋Š” ๋™๋ฅ˜ํ•ญ๋ผ๋ฆฌ ๊ณ„์‚ฐํ•ด ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ง์…ˆ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹คํ•ญ์‹ polynomial์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋™๋ฅ˜ํ•ญ๋ผ๋ฆฌ ๋”ํ•œ ๊ฒฐ๊ด๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”. ๊ฐ™์€ ์‹์ด๋ผ๋ฉด ๊ฐ€์žฅ ์งง์€ ์ˆ˜์‹์„ return ํ•ฉ๋‹ˆ๋‹ค.


์ œํ•œ์‚ฌํ•ญ

  • 0 < polynomial์— ์žˆ๋Š” ์ˆ˜ < 100

  • polynomial์— ๋ณ€์ˆ˜๋Š” 'x'๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

  • polynomial์€ ์–‘์˜ ์ •์ˆ˜, ๊ณต๋ฐฑ, โ€˜xโ€™, โ€˜+'๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ•ญ๊ณผ ์—ฐ์‚ฐ๊ธฐํ˜ธ ์‚ฌ์ด์—๋Š” ํ•ญ์ƒ ๊ณต๋ฐฑ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

  • ๊ณต๋ฐฑ์€ ์—ฐ์†๋˜์ง€ ์•Š์œผ๋ฉฐ ์‹œ์ž‘์ด๋‚˜ ๋์—๋Š” ๊ณต๋ฐฑ์ด ์—†์Šต๋‹ˆ๋‹ค.

  • ํ•˜๋‚˜์˜ ํ•ญ์—์„œ ๋ณ€์ˆ˜๊ฐ€ ์ˆซ์ž ์•ž์— ์˜ค๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

  • " + 3xx + + x7 + "์™€ ๊ฐ™์€ ์ž˜๋ชป๋œ ์ž…๋ ฅ์€ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

  • ๋ฌธ์ž์™€ ์ˆซ์ž ์‚ฌ์ด์˜ ๊ณฑํ•˜๊ธฐ๋Š” ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

  • polynomial์—๋Š” ์ผ์ฐจ ํ•ญ๊ณผ ์ƒ์ˆ˜ํ•ญ๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

  • ๊ณ„์ˆ˜ 1์€ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฒฐ๊ด๊ฐ’์— ์ƒ์ˆ˜ํ•ญ์€ ๋งˆ์ง€๋ง‰์— ๋‘ก๋‹ˆ๋‹ค.

  • 0 < polynomial์˜ ๊ธธ์ด < 50


์ž…์ถœ๋ ฅ ์˜ˆ

keyinputresult
"3x + 7 + x""4x + 7"
"x + x + x""3x"
  • "3x + 7 + x"์—์„œ ๋™๋ฅ˜ํ•ญ๋ผ๋ฆฌ ๋”ํ•˜๋ฉด "4x + 7"์ž…๋‹ˆ๋‹ค.

  • "x + x + x"์—์„œ ๋™๋ฅ˜ํ•ญ๋ผ๋ฆฌ ๋”ํ•˜๋ฉด "3x"์ž…๋‹ˆ๋‹ค.


๋‚˜์˜ ์ถœ๋ ฅ ์ฝ”๋“œ

function solution(polynomial) {
    let value = polynomial.split(' + ')
    
    let x = 0;
    let c = 0;
    
    for(let i =0; i<value.length; i++){
        let item = value[i]
        
        if(item[item.length-1] !== 'x'){
            c += Number(item)
        } 
        else {
            //x ์ผ๋–„
            const num = item.split('x')[0]
            if(num === ''){
                x += 1
            }else{
               x += Number(num)
    
          } 
        }
    }
    
    let answer = ''
    if(x === 1 ) {
        answer += 'x'
    }
    if (x>1){
        answer +=`${x}x`
    }
    if(x===0 && c > 0){
        answer += c
    }
    else if(c > 0){
        answer +=` + ${c}`
    }
    
    return answer
}

๐Ÿ’ก ์ž…/์ถœ๋ ฅ ์ ‘๊ทผ
1. polynomial : "3x + 7 + x" ๊ณต๋ฐฑ์„ ํฌํ•จํ•œ ๋ฌธ์ž์—ด ์‹์ธ ํ•ด๋‹น ์ž…๋ ฅ ๊ฐ’์„ split(" + ")์„ ํ†ตํ•ด +๋ฅผ ํฌํ•จํ•œ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•œ ๋ฐฐ์—ด ๋ฐ˜ํ™˜.
=> ["3x","7","x"]
2. if ์กฐ๊ฑด์„ ํ†ตํ•ด x๋ฅผ ํฌํ•จํ•œ ํ•ญ์ธ์ง€ ์•„๋‹Œ์ง€ ๊ตฌ๋ณ„.
2-1. x๊ฐ€ ์•„๋‹ˆ๋ฉด ์ƒ์ˆ˜ํ•ญ์—๋‹ค ์ถ”์ถœ๋œ ๋ฌธ์ž์—ด ๋„˜๋ฒ„๋ฅผ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ ์žฌํ• ๋‹น.
2-2. x์ด๋ฉด ๋ฌธ์ž'x'๋ฅผ ๋‚˜๋ˆ„์–ด ํ•„์š”ํ•œ ์ˆซ์ž๋ฅผ ์ถ”์ถœ ๊ทธ๋Ÿฌ๋‚˜ x์˜ ๊ฐ’์ด ํ•˜๋‚˜๋งŒ ์กด์žฌํ•  ๊ฒฝ์šฐ์™€ ์•„๋‹ ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ if์กฐ๊ฑด ์ถ”๊ฐ€
3. returnํ•  answer ์ž์ฒด๋ฅผ ์„ ์–ธํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ด์•ผํ•  ๋ฌธ์ž์—ด ์‹์„ ์กฐ๊ฑด์„ ํ†ตํ•ด ํ• ๋‹น
3-1. x๊ฐ€ 1์ผ ๊ฒฝ์šฐ answer์˜ x ๋ถ€๋ถ„์€ ์ˆซ์ž ์—†์ด ๋ฌธ์ž๋งŒ ์กด์žฌ
3-2. x > 1์ผ ๊ฒฝ์šฐ ์ €์žฅ ๋œ x์˜ ๊ฐ’์„ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด(๋ฐฑํ‹ฑ์œผ๋กœ ๊ฐ์‹ผ ๋ฌธ์ž์—ด)์„ ํ†ตํ•ด ํ•ด๋‹น ๊ฐ’ ํ˜ธ์ถœ
3-3. x===0 && c >0 ์ผ ๊ฒฝ์šฐ answer๋Š” c ๊ฐ’๋งŒ ์กด์žฌ
3-4. c > 0๋„ ํฌํ•จ์ผ ๊ฒฝ์šฐ ์ €์žฅ๋œ c์˜ ๊ฐ’์„ ํ˜ธ์ถœํ•˜์—ฌ ์‹์„ ๋งˆ๋ฌด๋ฆฌํ•˜์—ฌ ๋ฆฌํ„ด.

profile
๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•  ์ค„ ์•„๋Š” ๊ฐœ๋ฐœ์ž!

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2023๋…„ 8์›” 14์ผ

์ž˜ ๋ดค์Šต๋‹ˆ๋‹ค. ์ข‹์€ ๊ธ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ