๐ŸŸฃ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํšŒ๊ณ 

๊น€ํƒœ์šฑยท2023๋…„ 3์›” 19์ผ
0
post-thumbnail

๐Ÿคฏ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํ•ฅ์ง #1


[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1: ๋ฌธ์ž์—ด ๋‚ด p์™€ y์˜ ๊ฐœ์ˆ˜

๋ฌธ์ œ ์„ค๋ช…
๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๊ฐ€ ์„ž์—ฌ์žˆ๋Š” ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. s์— 'p'์˜ ๊ฐœ์ˆ˜์™€ 'y'์˜ ๊ฐœ์ˆ˜๋ฅผ ๋น„๊ตํ•ด ๊ฐ™์œผ๋ฉด True, ๋‹ค๋ฅด๋ฉด False๋ฅผ return ํ•˜๋Š” solution๋ฅผ ์™„์„ฑํ•˜์„ธ์š”. 'p', 'y' ๋ชจ๋‘ ํ•˜๋‚˜๋„ ์—†๋Š” ๊ฒฝ์šฐ๋Š” ํ•ญ์ƒ True๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ๊ฐœ์ˆ˜๋ฅผ ๋น„๊ตํ•  ๋•Œ ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋Š” ๊ตฌ๋ณ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด s๊ฐ€ "pPoooyY"๋ฉด true๋ฅผ returnํ•˜๊ณ  "Pyy"๋ผ๋ฉด false๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ์‚ฌํ•ญ
๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 50 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
๋ฌธ์ž์—ด s๋Š” ์•ŒํŒŒ๋ฒณ์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

sanswer
"pPoooyY"true
"Pyy"false

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

function solution(s){
    var answer = true
    var p = [] , y = [];

    let splits = s.toLowerCase().split('')
    for(let i=0; i<splits.length; i++){
        if(splits[i] ==='p') p.push('p');
        if(splits[i] ==='y') y.push('y');
    }
    if(p.length !== y.length ) answer = false;
    return answer
}

์ ‘๊ทผ ๋ฐฉ๋ฒ•
1. ๋ฌธ์ž์—ด์„ ๊ฐœ๋ณ„๋กœ ์ž˜๋ผ์ฃผ์–ด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•  ๊ฒƒ
2. ํ•ด๋‹น ๋ฐฐ์—ด์„ ๋น„๊ต ๋ฐ˜๋ณตํ•˜์—ฌ P์™€ y์˜ ๊ฐ’๋งŒ์„ ์ถ”์ถœ ํ•  ๊ฒƒ.
3. ์ถ”์ถœ๋œ ๊ฐ’์„ ๋นˆ ๋ฐฐ์—ด์— ๋„ฃ์„ ๊ฒƒ
4. ์ถ”์ถœ๋œ ๋ฐฐ์—ด๋“ค์˜ ๊ธธ์ด๋ฅผ ๋น„๊ตํ•  ๊ฒƒ

	function solution(s){
    var answer = true
    var p, y =[];
    
    let splits = s.toLowerCase().split('')
    for(let i=0; i<splits.length; i++){
        if(i ==='p') p.psuh('p')
        if(i ==='y') y.push('y')
        if(p.length === y.length ) answer 
    }
    return p
}

๊ทธ๋ ‡๊ฒŒ ๋ฌธ์ œ ์ ‘๊ทผ์„ ํ•ด์„œ ํ•ด๋‹น ํ’€์ด๊นŒ์ง„ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ํ•ด๋‹น ์ฝ”๋“œ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด์„œ gpt์—๊ฒŒ ๋ฌผ์–ด๋ดค๋‹ค.

ํ•ด๋‹น ๋ฌธ์ œ์ ์—์„œ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ๋„ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์‹ค์ˆ˜ ํ•œ ์ ์„ ์ฐพ์•„๋ณด์•˜๋‹ค.
1. ๋ณ€์ˆ˜ ์„ ์–ธ์—์„œ ์ด๋ฆ„์€ ํ•œ๋ฒˆ์— ์„ ์–ธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ณ€์ˆ˜ ๋ณ„ ์ดˆ๊ธฐ๊ฐ’์„ ๊ฐœ๋ณ„๋กœ ํ• ๋‹น ํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ.

let p, y = ""

let p = "", y = ""

์œ„์™€ ๊ฐ™์€ ์‹์œผ๋กœ ์ˆ˜์ • ํ–ˆ์–ด์•ผ ํ–ˆ๋‹ค. ๊ทธ๋ ‡์ง€์•Š์œผ๋ฉด y๋Š” ๋นˆ ๋ฌธ์ž์—ด์ด ํ˜•์„ฑ๋˜์ง€๋งŒ p์˜ ํ• ๋‹น ๋œ ๊ฐ’์€ undefined๋กœ ํ• ๋‹น๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๋Ÿฐ ์‹์ด ํ˜•์„ฑ๋˜์ง€ ์•Š๋Š”๋‹ค.

  1. if์˜ ์กฐ๊ฑด์— i๋Š” ์ธ๋ฑ์Šค ์ˆซ์ž ๊ทธ๋ž˜๋„์™€ ๋น„๊ตํ•˜๋ ค ํ•œ ์ .
if(i === 'p')
  
if(splits[i] === 'p') 

์œ„์™€ ๊ฐ™์ด ์ˆ˜์ •์ด ๋˜์–ด์•ผ splits์˜ ํ•ด๋‹น ์ธ๋ฑ์Šค์— ์กด์žฌํ•˜๋Š” ๊ฐ’๊ณผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ.

๋‹ค์Œ์—๋Š” ์ง€๊ธˆ๊ณผ ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•˜์ง€ ๋ง์ž.


๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด
ํ’€์ด #.1

function numPY(s){
  //ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”
    return s.toUpperCase().split("P").length === s.toUpperCase().split("Y").length;
}

split( )๋ฉ”์„œ๋“œ์— ํ•ด๋‹น ๋ฌธ์ž์—ด๋งŒ ์ ์šฉํ•˜์—ฌ ์ถ”์ถœ์ด ๊ฐ€๋Šฅํ•œ ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ๋๋‹ค.


ํ’€์ด #.2

function solution(s){

    return [...s.toLowerCase()].reduce((acc, cur) => {
        if(cur ==='p') return acc + 1;
        else if(cur ==='y') return acc - 1;
        return acc;
    }, 0) ? false : true;
}

[...]์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•์„ ์ ์šฉํ•ด ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ์š”์†Œ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ๋Œ€๊ด„ํ˜ธ([ ])๋กœ ๊ฐ์‹ธ ๋ฐฐ์—ด๋กœ ๋งŒ๋“  ๊ฒƒ์ด ์ธ์ƒ ๊นŠ์—ˆ๋‹ค.

์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•์€ for..of์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋‚ด๋ถ€์—์„œ ์ดํ„ฐ๋ ˆ์ดํ„ฐ(iterator, ๋ฐ˜๋ณต์ž)๋ฅผ ์‚ฌ์šฉํ•ด ์š”์†Œ๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿคฏ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํ•ฅ์ง #2


[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1: ์ •์ˆ˜ ์ œ๊ณฑ๊ทผ ํŒ๋ณ„

๋ฌธ์ œ ์„ค๋ช…
์ž„์˜์˜ ์–‘์˜ ์ •์ˆ˜ n์— ๋Œ€ํ•ด, n์ด ์–ด๋–ค ์–‘์˜ ์ •์ˆ˜ x์˜ ์ œ๊ณฑ์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.
n์ด ์–‘์˜ ์ •์ˆ˜ x์˜ ์ œ๊ณฑ์ด๋ผ๋ฉด x+1์˜ ์ œ๊ณฑ์„ ๋ฆฌํ„ดํ•˜๊ณ , n์ด ์–‘์˜ ์ •์ˆ˜ x์˜ ์ œ๊ณฑ์ด ์•„๋‹ˆ๋ผ๋ฉด -1์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ
n์€ 1์ด์ƒ, 50000000000000 ์ดํ•˜์ธ ์–‘์˜ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

nreturn
121144
3-1

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

function solution(n) {
    var answer = Math.sqrt(n)
    if(!Number.isInteger(answer)) return -1


    return Math.pow(answer+1,2)
}

์ ‘๊ทผ ๋ฐฉ๋ฒ•
1. ํ•ด๋‹น ์ˆ˜์˜ ์ œ๊ณฑ๊ทผ์ด ๋ฌด์—‡์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” Math.sqrt๋ฅผ ํ†ตํ•ด ์ œ๊ณฑ์ด ๋˜๋Š” ์ˆ˜๋ฅผ ๊ตฌํ–ˆ๊ณ 
2. ์ •์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด Number.inInteger ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉ
3. ๋งˆ์ง€๋ง‰ ํ•ด๋‹น ์ œ๊ณฑ๊ทผ+1์˜ ์ œ๊ณฑ ์ˆ˜๊นŒ์ง€ ๊ตฌํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„.


๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด
์ง€๊ธˆ์˜ ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ผ๊นŒ ๋ฌผ์–ด๋ณด๊ฒŒ ๋๋‹ค.

  1. if ์กฐ๊ฑด๋ฌธ์˜ ์กฐ๊ฑด์— ํ•œ๋ฒˆ์— ์ œ๊ณฑ๊ทผ์ด ์ •์ˆ˜์ธ์ง€ ํŒ๋ณ„.
  2. ์ฐธ์ด๋ฉด return ๊ฐ’์œผ๋กœ ์ œ๊ณฑ๊ทผ n+1 ๊ฐ’์˜ ์ œ๊ณฑ์„ ๊ตฌํ•จ
  3. ๊ฑฐ์ง“์ด๋ฉด -1์„ returnํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค.

๐Ÿคฉ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํ•ฅ์ง #3

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1: ์ •์ˆ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

๋ฌธ์ œ ์„ค๋ช…
ํ•จ์ˆ˜ solution์€ ์ •์ˆ˜ n์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค. n์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ํฐ๊ฒƒ๋ถ€ํ„ฐ ์ž‘์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ์ƒˆ๋กœ์šด ์ •์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด n์ด 118372๋ฉด 873211์„ ๋ฆฌํ„ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ œํ•œ์‚ฌํ•ญ
n์€ 1์ด์ƒ 8000000000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

nreturn
118372873211

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

function solution(n) {
    var answer = n.toString().split('').sort((a,b) => b - a).join('')
    return parseInt(answer);
}

์ ‘๊ทผ ๋ฐฉ๋ฒ•
1. ๋ฐ›์•„์˜จ ์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ํ›„ split ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜
2. sort ๋ฉ”์„œ๋“œ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
3. join ๋ฉ”์„œ๋“œ๋กœ ('')๋ฅผ ์—†์•ค ๋ณ‘ํ•ฉ๋œ ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜
4. return ๊ฐ’์„ pareseInt๋ฅผ ํ†ตํ•ด ์ˆซ์ž๋กœ ํ˜•๋ณ€ํ™” ํ•ด์ฃผ์—ˆ๋‹ค.


๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด
์ด ์—ญ์‹œ ์ฝ”๋“œ ๊ฐœ์„  ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ ํ•ด์„œ ๋ฌผ์–ด๋ณด์•˜๋‹ค.

์ตœ๊ณ ์˜ ์นญ์ฐฌ์ด ์•„๋‹Œ๊ฐ€..ใ… ใ…  ๊พธ์ค€ํžˆ ๊ณ„์†ํ•ด์„œ ํ•˜๋‹ค๋ณด๋ฉด ๋”์šฑ ์‹ค๋ ฅ์„ ์Œ“์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ ๋ฏฟ๊ณ  ์ง€๊ธˆ์˜ ๋‹ต๋ณ€์„ ๊ณ„๊ธฐ๋กœ ๋”์šฑ ์„ฑ์žฅํ•  ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋„๋ก ๋…ธ๋ ฅํ•ด์•ผ๊ฒ ๋‹ค!

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

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