๐ŸŒ  ๋ฌธ์ œ

์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜์˜ ํ‰๊ท  ์ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•™์ƒ๋“ค์˜ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ธฐ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜๋ฅผ ๋‹ด์€ 2์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด score๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜์˜ ํ‰๊ท ์„ ๊ธฐ์ค€์œผ๋กœ ๋งค๊ธด ๋“ฑ์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • 0 ≤ score[0], score[1] ≤ 100
  • 1 ≤ score์˜ ๊ธธ์ด ≤ 10
  • score์˜ ์›์†Œ ๊ธธ์ด๋Š” 2์ž…๋‹ˆ๋‹ค.
  • score๋Š” ์ค‘๋ณต๋œ ์›์†Œ๋ฅผ ๊ฐ–์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

score result
[[80, 70], [90, 50], [40, 70], [50, 80]] [1, 2, 4, 3]
[[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100, 100], [10, 30]] [4, 4, 6, 2, 2, 1, 7]

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ํ‰๊ท ์€ ๊ฐ๊ฐ 75, 70, 55, 65 ์ด๋ฏ€๋กœ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ฒจ [1, 2, 4, 3]์„ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ํ‰๊ท ์€ ๊ฐ๊ฐ 75, 75, 40, 95, 95, 100, 20 ์ด๋ฏ€๋กœ [4, 4, 6, 2, 2, 1, 7] ์„ returnํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต๋™ 2๋“ฑ์ด ๋‘ ๋ช…, ๊ณต๋™ 4๋“ฑ์ด 2๋ช… ์ด๋ฏ€๋กœ 3๋“ฑ๊ณผ 5๋“ฑ์€ ์—†์Šต๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(score) {
    const len = score.length;
    let new_arr = [];
    while (score.length != 0) {
        let tmp = score.shift();
        let avg = (tmp[0] + tmp[1]) / 2;
        new_arr.push(avg);
    }
    
    let answer = new Array(len);
    answer.fill(-1);

    let k = 1;

    while (new_arr.filter(e => 0 === e).length != new_arr.length) {
        let max = Math.max.apply(Math, new_arr);
        let cnt = 0;
        while (max === Math.max.apply(Math, new_arr)) {
            let idx = new_arr.indexOf(max);
            answer[idx] = k;
            new_arr[idx] = 0;
            cnt += 1;
        }
        k += cnt;
    }
    
    while (answer.indexOf(-1) != -1) {
        answer[answer.indexOf(-1)] = Math.max.apply(Math, answer) + 1;
    }
    
    return answer;
}

๐ŸŒ  ๋ฌธ์ œ

๋จธ์“ฑ์ด๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์— ๋กœ๊ทธ์ธํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋จธ์“ฑ์ด๊ฐ€ ์ž…๋ ฅํ•œ ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด id_pw์™€ ํšŒ์›๋“ค์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด db๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋กœ๊ทธ์ธ ์„ฑ๊ณต, ์‹คํŒจ์— ๋”ฐ๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋ชจ๋‘ ์ผ์น˜ํ•˜๋Š” ํšŒ์›์ •๋ณด๊ฐ€ ์žˆ์œผ๋ฉด "login"์„ returnํ•ฉ๋‹ˆ๋‹ค.
๋กœ๊ทธ์ธ์ด ์‹คํŒจํ–ˆ์„ ๋•Œ ์•„์ด๋””๊ฐ€ ์ผ์น˜ํ•˜๋Š” ํšŒ์›์ด ์—†๋‹ค๋ฉด “fail”๋ฅผ, ์•„์ด๋””๋Š” ์ผ์น˜ํ•˜์ง€๋งŒ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜๋Š” ํšŒ์›์ด ์—†๋‹ค๋ฉด “wrong pw”๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • ํšŒ์›๋“ค์˜ ์•„์ด๋””๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • ํšŒ์›๋“ค์˜ ์•„์ด๋””๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํšŒ์›๋“ค์˜ ํŒจ์Šค์›Œ๋“œ๋Š” ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • ํšŒ์›๋“ค์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ๊ฐ™์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์•„์ด๋””๋Š” ๊ฐ™์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • id_pw์˜ ๊ธธ์ด๋Š” 2์ž…๋‹ˆ๋‹ค.
  • id_pw์™€ db์˜ ์›์†Œ๋Š” [์•„์ด๋””, ํŒจ์Šค์›Œ๋“œ] ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.
  • 1 ≤ ์•„์ด๋””์˜ ๊ธธ์ด ≤ 15
  • 1 ≤ ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ๊ธธ์ด ≤ 6
  • 1 ≤ db์˜ ๊ธธ์ด ≤ 10
  • db์˜ ์›์†Œ์˜ ๊ธธ์ด๋Š” 2์ž…๋‹ˆ๋‹ค.

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

id_pw db result
["meosseugi", "1234"] [["rardss", "123"], ["yyoom", "1234"], ["meosseugi", "1234"]] "login"
["programmer01", "15789"] [["programmer02", "111111"], ["programmer00", "134"], ["programmer01", "1145"]] "wrong pw"
["rabbit04", "98761"] [["jaja11", "98761"], ["krong0313", "29440"], ["rabbit00", "111333"]] "fail"

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • db์— ๊ฐ™์€ ์ •๋ณด์˜ ๊ณ„์ •์ด ์žˆ์œผ๋ฏ€๋กœ "login"์„ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • db์— ์•„์ด๋””๋Š” ๊ฐ™์ง€๋งŒ ํŒจ์Šค์›Œ๋“œ๊ฐ€ ๋‹ค๋ฅธ ๊ณ„์ •์ด ์žˆ์œผ๋ฏ€๋กœ "wrong pw"๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • db์— ์•„์ด๋””๊ฐ€ ๋งž๋Š” ๊ณ„์ •์ด ์—†์œผ๋ฏ€๋กœ "fail"์„ returnํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(id_pw, db) {
    let status = "";
    while (db.length != 0) {
        let tmp = db.shift();
        if (tmp[0] === id_pw[0]) {
            if (tmp[1] === id_pw[1]) {
                status = "login";
            } else {
                status = "wrong pw";
            }
            break;
        } else {
            status = "fail";
        }
    }
    return status;
}

๐ŸŒ  ๋ฌธ์ œ

๋จธ์“ฑ์ด๋Š” ํƒœ์–ด๋‚œ ์ง€ 6๊ฐœ์›” ๋œ ์กฐ์นด๋ฅผ ๋Œ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ์นด๋Š” ์•„์ง "aya", "ye", "woo", "ma" ๋„ค ๊ฐ€์ง€ ๋ฐœ์Œ์„ ์ตœ๋Œ€ ํ•œ ๋ฒˆ์”ฉ ์‚ฌ์šฉํ•ด ์กฐํ•ฉํ•œ(์ด์–ด ๋ถ™์ธ) ๋ฐœ์Œ๋ฐ–์— ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ๋ฐฐ์—ด babbling์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋จธ์“ฑ์ด์˜ ์กฐ์นด๊ฐ€ ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • 1 ≤ babbling์˜ ๊ธธ์ด ≤ 100
  • 1 ≤ babbling[i]์˜ ๊ธธ์ด ≤ 15
  • babbling์˜ ๊ฐ ๋ฌธ์ž์—ด์—์„œ "aya", "ye", "woo", "ma"๋Š” ๊ฐ๊ฐ ์ตœ๋Œ€ ํ•œ ๋ฒˆ์”ฉ๋งŒ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ฆ‰, ๊ฐ ๋ฌธ์ž์—ด์˜ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ์ค‘์—์„œ "aya", "ye", "woo", "ma"๊ฐ€ ํ•œ ๋ฒˆ์”ฉ๋งŒ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์ž์—ด์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

babbling result
["aya", "yee", "u", "maa", "wyeoo"] 1
["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] 3

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ["aya", "yee", "u", "maa", "wyeoo"]์—์„œ ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ "aya"๋ฟ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์„ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"]์—์„œ ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ "aya" + "ye" = "ayaye", "ye", "ye" + "ma" + "woo" = "yemawoo"๋กœ 3๊ฐœ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 3์„ returnํ•ฉ๋‹ˆ๋‹ค.

์œ ์˜์‚ฌํ•ญ

  • ๋„ค ๊ฐ€์ง€๋ฅผ ๋ถ™์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐœ์Œ ์ด์™ธ์—๋Š” ์–ด๋–ค ๋ฐœ์Œ๋„ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์œผ๋กœ ๊ทœ์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "woowo"๋Š” "woo"๋Š” ๋ฐœ์Œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ "wo"๋ฅผ ๋ฐœ์Œํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ•  ์ˆ˜ ์—†๋Š” ๋ฐœ์Œ์ž…๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(babbling) {
    let regex = /aya|ye|woo|ma/g;
    let answer = 0;
    for (i in babbling) {
        let test = babbling[i].replace(regex, "");
        if (test === "") {
            answer += 1;
        }
    }
    return answer;
}

๐ŸŒ  ๋ฌธ์ œ

์ •์ˆ˜ n์„ ๊ธฐ์ค€์œผ๋กœ n๊ณผ ๊ฐ€๊นŒ์šด ์ˆ˜๋ถ€ํ„ฐ ์ •๋ ฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ n์œผ๋กœ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๋” ํฐ ์ˆ˜๋ฅผ ์•ž์— ์˜ค๋„๋ก ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numlist์™€ ์ •์ˆ˜ n์ด ์ฃผ์–ด์งˆ ๋•Œ numlist์˜ ์›์†Œ๋ฅผ n์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ€๊นŒ์šด ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•œ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • 1 ≤ n ≤ 10,000
  • 1 ≤ numlist์˜ ์›์†Œ ≤ 10,000
  • 1 ≤ numlist์˜ ๊ธธ์ด ≤ 100
  • numlist๋Š” ์ค‘๋ณต๋œ ์›์†Œ๋ฅผ ๊ฐ–์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

numlist n result
[1, 2, 3, 4, 5, 6] 4 [4, 5, 3, 6, 2, 1]
[10000,20,36,47,40,6,10,7000] 30 [36, 40, 20, 47, 10, 6, 7000, 10000]

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • 4์—์„œ ๊ฐ€๊นŒ์šด ์ˆœ์œผ๋กœ [4, 5, 3, 6, 2, 1]์„ returnํ•ฉ๋‹ˆ๋‹ค.
  • 3๊ณผ 5๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ๋” ํฐ 5๊ฐ€ ์•ž์— ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • 2์™€ 6์€ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ๋” ํฐ 6์ด ์•ž์— ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • 30์—์„œ ๊ฐ€๊นŒ์šด ์ˆœ์œผ๋กœ [36, 40, 20, 47, 10, 6, 7000, 10000]์„ returnํ•ฉ๋‹ˆ๋‹ค.
  • 20๊ณผ 40์€ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ๋” ํฐ 40์ด ์•ž์— ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(numlist, n) {
    return numlist.sort((a, b) => Math.abs(a - n) - Math.abs(b - n) || b - a);
}

๐ŸŒ  ๋ฌธ์ œ

์„ ๋ถ„ 3๊ฐœ๊ฐ€ ํ‰ํ–‰ํ•˜๊ฒŒ ๋†“์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ธ ์„ ๋ถ„์˜ ์‹œ์ž‘๊ณผ ๋ ์ขŒํ‘œ๊ฐ€ [[start, end], [start, end], [start, end]] ํ˜•ํƒœ๋กœ ๋“ค์–ด์žˆ๋Š” 2์ฐจ์› ๋ฐฐ์—ด lines๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋‘ ๊ฐœ ์ด์ƒ์˜ ์„ ๋ถ„์ด ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์˜ ๊ธธ์ด๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

lines๊ฐ€ [[0, 2], [-3, -1], [-2, 1]]์ผ ๋•Œ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.



์„ ๋ถ„์ด ๋‘ ๊ฐœ ์ด์ƒ ๊ฒน์นœ ๊ณณ์€ [-2, -1], [0, 1]๋กœ ๊ธธ์ด 2๋งŒํผ ๊ฒน์ณ์žˆ์Šต๋‹ˆ๋‹ค.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • lines์˜ ๊ธธ์ด = 3
  • lines์˜ ์›์†Œ์˜ ๊ธธ์ด = 2
  • ๋ชจ๋“  ์„ ๋ถ„์€ ๊ธธ์ด๊ฐ€ 1 ์ด์ƒ์ž…๋‹ˆ๋‹ค.
  • lines์˜ ์›์†Œ๋Š” [a, b] ํ˜•ํƒœ์ด๋ฉฐ, a, b๋Š” ๊ฐ๊ฐ ์„ ๋ถ„์˜ ์–‘ ๋์  ์ž…๋‹ˆ๋‹ค.
  • -100 ≤ a < b ≤ 100

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

lines result
[[0, 1], [2, 5], [3, 9]] 2
[[-1, 1], [1, 3], [3, 9]] 0
[[0, 5], [3, 9], [1, 10]]

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ๋‘ ๋ฒˆ์งธ, ์„ธ ๋ฒˆ์งธ ์„ ๋ถ„ [2, 5], [3, 9]๊ฐ€ [3, 5] ๊ตฌ๊ฐ„์— ๊ฒน์ณ์žˆ์œผ๋ฏ€๋กœ 2๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ๊ฒน์นœ ์„ ๋ถ„์ด ์—†์œผ๋ฏ€๋กœ 0์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • ์ฒซ ๋ฒˆ์งธ์™€ ๋‘ ๋ฒˆ์งธ ์„ ๋ถ„์ด [3, 5] ๊ตฌ๊ฐ„์—์„œ ๊ฒน์นฉ๋‹ˆ๋‹ค.
  • ์ฒซ ๋ฒˆ์งธ์™€ ์„ธ ๋ฒˆ์งธ ์„ ๋ถ„ [1, 5] ๊ตฌ๊ฐ„์—์„œ ๊ฒน์นฉ๋‹ˆ๋‹ค.
  • ๋‘ ๋ฒˆ์งธ์™€ ์„ธ ๋ฒˆ์งธ ์„ ๋ถ„ [3, 9] ๊ตฌ๊ฐ„์—์„œ ๊ฒน์นฉ๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ [1, 9] ๊ตฌ๊ฐ„์— ๋‘ ๊ฐœ ์ด์ƒ์˜ ์„ ๋ถ„์ด ๊ฒน์ณ์žˆ์œผ๋ฏ€๋กœ, 8์„ return ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(lines) {

    let linesmap = new Array(200);
    linesmap.fill(0);
    
    for (let i = 0; i <= 2; i ++) {
        let left = lines[i][0];
        let right = lines[i][1];
        
        for (let j = left; j < right; j++) {
            linesmap[j+100] += 1;
        }
    }
    
    let answer = 0;
    
    for ( let k in linesmap) {
        if (linesmap[k] > 1) {
            answer += 1;
        }
    }
    
    return answer;
}

๐ŸŒ  ๋ฌธ์ œ

์†Œ์ˆ˜์  ์•„๋ž˜ ์ˆซ์ž๊ฐ€ ๊ณ„์†๋˜์ง€ ์•Š๊ณ  ์œ ํ•œ๊ฐœ์ธ ์†Œ์ˆ˜๋ฅผ ์œ ํ•œ์†Œ์ˆ˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ถ„์ˆ˜๋ฅผ ์†Œ์ˆ˜๋กœ ๊ณ ์น  ๋•Œ ์œ ํ•œ์†Œ์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ถ„์ˆ˜์ธ์ง€ ํŒ๋ณ„ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์œ ํ•œ์†Œ์ˆ˜๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ๋ถ„์ˆ˜์˜ ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ธฐ์•ฝ๋ถ„์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ด์—ˆ์„ ๋•Œ, ๋ถ„๋ชจ์˜ ์†Œ์ธ์ˆ˜๊ฐ€ 2์™€ 5๋งŒ ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋‘ ์ •์ˆ˜ a์™€ b๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, a/b๊ฐ€ ์œ ํ•œ์†Œ์ˆ˜์ด๋ฉด 1์„, ๋ฌดํ•œ์†Œ์ˆ˜๋ผ๋ฉด 2๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • a, b๋Š” ์ •์ˆ˜
  • 0< a ≤ 1,000
  • 0 < b ≤ 1,000

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

a b result
7 20 1
11 22 1
12 21 2

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ๋ถ„์ˆ˜ 7/20์€ ๊ธฐ์•ฝ๋ถ„์ˆ˜ ์ž…๋‹ˆ๋‹ค. ๋ถ„๋ชจ 20์˜ ์†Œ์ธ์ˆ˜๊ฐ€ 2, 5 ์ด๊ธฐ ๋•Œ๋ฌธ์— ์œ ํ•œ์†Œ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์„ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ๋ถ„์ˆ˜ 11/22๋Š” ๊ธฐ์•ฝ๋ถ„์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด 1/2 ์ž…๋‹ˆ๋‹ค. ๋ถ„๋ชจ 2๋Š” ์†Œ์ธ์ˆ˜๊ฐ€ 2 ๋ฟ์ด๊ธฐ ๋•Œ๋ฌธ์— ์œ ํ•œ์†Œ์ˆ˜ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์„ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • ๋ถ„์ˆ˜ 12/21๋Š” ๊ธฐ์•ฝ๋ถ„์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด 4/7 ์ž…๋‹ˆ๋‹ค. ๋ถ„๋ชจ 7์€ ์†Œ์ธ์ˆ˜๊ฐ€ 7 ์ด๋ฏ€๋กœ ๋ฌดํ•œ์†Œ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 2๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

Hint

  • ๋ถ„์ž์™€ ๋ถ„๋ชจ์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋กœ ์•ฝ๋ถ„ํ•˜๋ฉด ๊ธฐ์•ฝ๋ถ„์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ •์ˆ˜๋„ ์œ ํ•œ์†Œ์ˆ˜๋กœ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(a, b) {
    // ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ
    let gcd = 1;
    for ( let i = 2; i <= Math.min(a, b); i ++ ){
        if (a % i === 0 && b % i === 0) {
            gcd = i;
        }
    }
    let new_a = a / gcd;
    let new_b = b / gcd;
    
    while (new_b % 2 == 0 && new_b != 1) {
        new_b = new_b / 2;
    }
    
    while (new_b % 5 == 0 && new_b != 1) {
        new_b = new_b / 5;
    }
    
    if (new_b === 1) {
        return 1;
    } else {
        return 2;
    }
}

๐ŸŒ  ๋ฌธ์ œ

์  ๋„ค ๊ฐœ์˜ ์ขŒํ‘œ๋ฅผ ๋‹ด์€ ์ด์ฐจ์› ๋ฐฐ์—ด  dots๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

[[x1, y1], [x2, y2], [x3, y3], [x4, y4]]
์ฃผ์–ด์ง„ ๋„ค ๊ฐœ์˜ ์ ์„ ๋‘ ๊ฐœ์”ฉ ์ด์—ˆ์„ ๋•Œ, ๋‘ ์ง์„ ์ด ํ‰ํ–‰์ด ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋ฉด 1์„ ์—†์œผ๋ฉด 0์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • dots์˜ ๊ธธ์ด = 4
  • dots์˜ ์›์†Œ๋Š” [x, y] ํ˜•ํƒœ์ด๋ฉฐ x, y๋Š” ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.
  • 0 ≤ x, y ≤ 100
  • ์„œ๋กœ ๋‹ค๋ฅธ ๋‘๊ฐœ ์ด์ƒ์˜ ์ ์ด ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • ๋‘ ์ง์„ ์ด ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ(์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ)์—๋„ 1์„ return ํ•ด์ฃผ์„ธ์š”.
  • ์ž„์˜์˜ ๋‘ ์ ์„ ์ด์€ ์ง์„ ์ด x์ถ• ๋˜๋Š” y์ถ•๊ณผ ํ‰ํ–‰ํ•œ ๊ฒฝ์šฐ๋Š” ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

dots result
[[1, 4], [9, 2], [3, 8], [11, 6]] 1
[[3, 5], [4, 1], [2, 4], [5, 10]] 0

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ์  [1, 4], [3, 8]์„ ์ž‡๊ณ  [9, 2], [11, 6]๋ฅผ ์ด์œผ๋ฉด ๋‘ ์„ ๋ถ„์€ ํ‰ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ์ ์„ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ•ด๋„ ํ‰ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(dots) {
    // ์ง์„ ์˜ ๊ธฐ์šธ๊ธฐ (y1 - y2) / (x1 - x2)
    // ์ ์„ ์ž‡๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 3๊ฐœ
    // ์„ธ ๊ฐœ๋ฉด ๋‹ค ํ•˜๋Š”๊ฒŒ ๋น ๋ฅผ ๊ฒƒ ๊ฐ™์Œ
    let answer = 0;
    
    let a = Math.abs(dots[0][1] - dots[1][1]) / Math.abs(dots[0][0] - dots[1][0]);
    let b = Math.abs(dots[2][1] - dots[3][1]) / Math.abs(dots[2][0] - dots[3][0]);
    
    if (a - b === 0) {
        answer = 1;
    }
    
    let c = Math.abs(dots[0][1] - dots[2][1]) / Math.abs(dots[0][0] - dots[2][0]);
    let d = Math.abs(dots[1][1] - dots[3][1]) / Math.abs(dots[1][0] - dots[3][0]);
    
    if (c - d === 0) {
        answer = 1;
    }
    
    let e = Math.abs(dots[0][1] - dots[3][1]) / Math.abs(dots[0][0] - dots[3][0]);
    let f = Math.abs(dots[1][1] - dots[2][1]) / Math.abs(dots[1][0] - dots[2][0]);
    
    if (e - f === 0) {
        answer = 1;
    }
    
    return answer;
}

๐ŸŒ  ๋ฌธ์ œ

3x ๋งˆ์„ ์‚ฌ๋žŒ๋“ค์€ 3์„ ์ €์ฃผ์˜ ์ˆซ์ž๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— 3์˜ ๋ฐฐ์ˆ˜์™€ ์ˆซ์ž 3์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 3x ๋งˆ์„ ์‚ฌ๋žŒ๋“ค์˜ ์ˆซ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

10์ง„๋ฒ• 3x ๋งˆ์„์—์„œ ์“ฐ๋Š” ์ˆซ์ž 10์ง„๋ฒ• 3x ๋งˆ์„์—์„œ ์“ฐ๋Š” ์ˆซ์ž
1 1 6 8
2 2 7 10
3 4 8 11
4 5 9 14
5 7 10 16
์ •์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, n์„ 3x ๋งˆ์„์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ˆซ์ž๋กœ ๋ฐ”๊ฟ” returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • 1 ≤ n ≤ 100

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

n result
15 25
40 76

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • 15๋ฅผ 3x ๋งˆ์„์˜ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด 25์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • 40์„ 3x ๋งˆ์„์˜ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด 76์ž…๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(n) {
    let answer = 0;
    for (let i = 1; i <= n; i ++) {
        answer += 1;
        while (answer % 3 === 0 || answer.toString().split("").map(Number).includes(3)) {
            answer += 1;
        }
        console.log(i, "๋ฒˆ์งธ", answer)
    }
    return answer;
}

๐ŸŒ  ๋ฌธ์ œ

PROGRAMMERS-962 ํ–‰์„ฑ์— ๋ถˆ์‹œ์ฐฉํ•œ ์šฐ์ฃผ๋น„ํ–‰์‚ฌ ๋จธ์“ฑ์ด๋Š” ์™ธ๊ณ„ํ–‰์„ฑ์˜ ์–ธ์–ด๋ฅผ ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์•ŒํŒŒ๋ฒณ์ด ๋‹ด๊ธด ๋ฐฐ์—ด spell๊ณผ ์™ธ๊ณ„์–ด ์‚ฌ์ „ dic์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. spell์— ๋‹ด๊ธด ์•ŒํŒŒ๋ฒณ์„ ํ•œ๋ฒˆ์”ฉ๋งŒ ๋ชจ๋‘ ์‚ฌ์šฉํ•œ ๋‹จ์–ด๊ฐ€ dic์— ์กด์žฌํ•œ๋‹ค๋ฉด 1, ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด 2๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • spell๊ณผ dic์˜ ์›์†Œ๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ์žˆ์Šต๋‹ˆ๋‹ค.
  • 2 ≤ spell์˜ ํฌ๊ธฐ ≤ 10
  • spell์˜ ์›์†Œ์˜ ๊ธธ์ด๋Š” 1์ž…๋‹ˆ๋‹ค.
  • 1 ≤ dic์˜ ํฌ๊ธฐ ≤ 10
  • 1 ≤ dic์˜ ์›์†Œ์˜ ๊ธธ์ด ≤ 10
  • spell์˜ ์›์†Œ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•ด ๋‹จ์–ด๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • spell์˜ ์›์†Œ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด๋Š” dic์— ๋‘ ๊ฐœ ์ด์ƒ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • dic๊ณผ spell ๋ชจ๋‘ ์ค‘๋ณต๋œ ์›์†Œ๋ฅผ ๊ฐ–์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

spell dic result
["p", "o", "s"] ["sod", "eocd", "qixm", "adio", "soo"] 2
["z", "d", "x"] ["def", "dww", "dzx", "loveaw"] 1
["s", "o", "m", "d"] ["moos", "dzx", "smm", "sunmmo", "som"] 2

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • "p", "o", "s" ๋ฅผ ์กฐํ•ฉํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด๊ฐ€ dic์— ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 2๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • "z", "d", "x" ๋ฅผ ์กฐํ•ฉํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด "dzx"๊ฐ€ dic์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์„ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • "s", "o", "m", "d" ๋ฅผ ์กฐํ•ฉํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด๊ฐ€ dic์— ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 2์„ returnํ•ฉ๋‹ˆ๋‹ค.

์œ ์˜์‚ฌํ•ญ

  • ์ž…์ถœ๋ ฅ ์˜ˆ #3 ์—์„œ "moos", "smm", "som"๋„ "s", "o", "m", "d" ๋ฅผ ์กฐํ•ฉํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ spell์˜ ์›์†Œ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋‹ต์ด ์•„๋‹™๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(spell, dic) {
    while (dic.length != 0) {
        let tmp = dic.shift();
        let cnt = 0;
        for (e in spell) {
            if (tmp.includes(spell[e])) {
                cnt += 1;
            }
        }
        if (cnt === spell.length) {
            return 1;
        }
    }
    return 2;
}

+ Recent posts