์ตœ๋นˆ๊ฐ’ ๊ตฌํ•˜๊ธฐ๐Ÿ’ก


ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž…๋ฌธ๋ฌธ์ œ Day3๋ฅผ ํ‘ธ๋Š”์ค‘... lv.0๋”ฐ๋ฆฌ ์ž…๋ฌธ๋ฌธ์ œ ํ‘ธ๋Š”๋ฐ๋„ ๋ฒŒ์จ ๋จธ๋ฆฌ๊ฐ€ ์•„ํ”„๋‹ค๋‹ˆ
๋ฐฐ์—ด๋ฉ”์†Œ๋“œ๋‚˜ ์ด๋Ÿฐ์ €๋Ÿฐ ์œ ์šฉํ•œ ํ•จ์ˆ˜๋ฅผ ๊ฑฐ์˜ ๋ชจ๋ฅด๋Š” ์ƒํƒœ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€๋ ค๋‹ˆ ๋‚จ๋“ค๋ณด๋‹ค ์ฝ”๋“œ๊ฐ€ ๋‘์„ธ๋ฐฐ์ฏค ๋” ๊ธธ๊ฒŒ ๋ฝ‘ํžŒ๋‹ค... ์ด๋ฒˆ ๋ฌธ์ œ๋„ ๊ฐœ๋ฐœ์ž ์ง€์ธ์˜ ํžŒํŠธ๋ฅผ ๋ฐ›์•„ ๊ฒจ์šฐ ํ’€์–ด๋ƒˆ์ง€๋ญ์–Œ....๐Ÿ˜ถโ€๐ŸŒซ๏ธ


๐Ÿ’›๋ฌธ์ œ์„ค๋ช…

์ตœ๋นˆ๊ฐ’์€ ์ฃผ์–ด์ง„ ๊ฐ’ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž์ฃผ ๋‚˜์˜ค๋Š” ๊ฐ’์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ •์ˆ˜ ๋ฐฐ์—ด array๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ตœ๋นˆ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”. ์ตœ๋นˆ๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ๋ฉด -1์„ return ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿงก์ œํ•œ์‚ฌํ•ญ

  • 0 < array์˜ ๊ธธ์ด < 100
  • 0 โ‰ค array์˜ ์›์†Œ < 1000

๐Ÿงก์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

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

[1, 2, 3, 3, 3, 4]์—์„œ 1์€ 1๊ฐœ 2๋Š” 1๊ฐœ 3์€ 3๊ฐœ 4๋Š” 1๊ฐœ๋กœ ์ตœ๋นˆ๊ฐ’์€ 3์ž…๋‹ˆ๋‹ค.

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

[1, 1, 2, 2]์—์„œ 1์€ 2๊ฐœ 2๋Š” 2๊ฐœ๋กœ ์ตœ๋นˆ๊ฐ’์ด 1, 2์ž…๋‹ˆ๋‹ค.
์ตœ๋นˆ๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ์ด๋ฏ€๋กœ -1์„ return ํ•ฉ๋‹ˆ๋‹ค.

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

[1]์—๋Š” 1๋งŒ ์žˆ์œผ๋ฏ€๋กœ ์ตœ๋นˆ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.


๐Ÿ’›๋ฌธ์ œํ’€์ด

	function solution(array) {
    
    let count = [];
    
    // 0์ด 1000๊ฐœ ๋‹ด๊ฒจ์žˆ๋Š” ๋ฐฐ์—ด ์ƒ์„ฑ
    for(i = 0; i <= 1000; i++){
        count.push(0)
    }
    
    // count๋ฐฐ์—ด์—์„œ ์ˆซ์ž์™€ ์ผ์น˜ํ•˜๋Š” index๊ฐ’์˜ ์›์†Œ์— +1์”ฉ ์นด์šดํŠธ
    array.forEach(function(arr, idx){
        count[arr] += 1;
    }) 
    
    let answer = 0;
    let bigest = 0;
    let tmp = 0;
    
    // count๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ๋†’์€ ์ž๋ฆฌ์˜ index๊ฐ’์„ answer๋ฐฐ์—ด์— ๋‹ด์Œ
    count.forEach(function(arr, idx){
        if(bigest < arr) {
            answer = idx;
            bigest = arr;
        }
    });
    
    // count๊ฐ’์ด ๊ฐ™์€ ๋˜ ๋‹ค๋ฅธ ์›์†Œ๊ฐ€ ์žˆ๋‹ค๋ฉด tmp์— ++
    // (๋ณธ์ธ๊ณผ๋„ ๋‹ค์‹œํ•œ๋ฒˆ ๋น„๊ตํ•˜๊ธฐ๋•Œ๋ฌธ์— 1์€ ๋ฐ˜๋“œ์‹œ ์นด์šดํŒ…๋จ)
    count.forEach(function(arr, idx){
        arr === bigest ? tmp++ : tmp
    });
    
    // tmp์˜ ๊ฐ’์ด 1๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์ค‘๋ณต๋˜๋Š” ์ตœ๋นˆ๊ฐ’์ด ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ -1์„ return ์•„๋‹ˆ๋ผ๋ฉด answer๋ฅผ return
    return tmp > 1 ? -1 : answer;
}

๋‚จ๋“ค์€ ์งง์œผ๋ฉด 6์ค„ ๊ธธ๋ฉด 15์ค„์ฏค ์“ฐ๋Š”๊ฒƒ๊ฐ™์•˜๋Š”๋ฐ... ๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ด๋„ ์ดˆ๋ฉด์ธ ๋ฌธ๋ฒ•์ด ๋„ˆ๋ฌด๋‚˜๋„ ๋งŽ์•˜๊ธฐ์—... ๋‚˜๋กœ์จ๋Š” ์ตœ์„ ์„ ๋‹คํ•œ ํ’€์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹น...๐Ÿ’ฆ

์šฐ์„  0๋งŒ ๋“ค์–ด์žˆ๋Š” ๊ธธ์ด 1000์˜ count๋ฐฐ์—ด์„ ๋งŒ๋“ค์—ˆ๊ณ 
array์˜ ์›์†Œ์™€ ์ผ์น˜ํ•˜๋Š” ์ž๋ฆฟ์ˆ˜์˜ count์›์†Œ์— +1์”ฉ ๋”ํ•œ๋‹ค.
(์›์†Œ๊ฐ€ 3์ธ๊ฒฝ์šฐ count[3]์— +1 => 3์ด 2๊ฐœ๋ฉด ์ตœ์ข…์ ์œผ๋กœ count[3]์ด 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค)

count์—์„œ ์นด์šดํŠธ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ๋œ ์ž๋ฆฌ์˜ index๊ฐ’์„ answer์— ์šฐ์„  ๋‹ด๋Š”๋‹ค.
์—ฌ๊ธฐ์„œ ๋๋‚˜๋ฉด ์ข‹์•˜๊ฒ ์ง€๋งŒ.. ์ตœ๋นˆ๊ฐ’์ด ๊ฐ€์žฅ ๋†’์€ ์›์†Œ๊ฐ€ 2๊ฐœ ์ด์ƒ์ด๋ฉด -1์„ ์ถœ๋ ฅํ•ด์•ผํ•œ๋‹ค...ใ…œใ…œ

ํ•œ๋ฒˆ ๋” forEach๋ฌธ์„ ๋Œ๋ ค ์นด์šดํŠธ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ์›์†Œ๊ฐ€ ํ•œ๊ฐœ ์ด์ƒ์ด๋ฉด tmp์— ๋‹ด์•„ ํ™•์ธํ–ˆ๋‹ค.

์ตœ์ข…์ ์œผ๋กœ tmp์˜ ๊ฐ’์ด 1 ์ด์ƒ์ด๋ฉด -1 ์•„๋‹ˆ๋ผ๋ฉด ์ตœ์ดˆ์˜ answer๊ฐ’์„ ๋ฆฌํ„ดํ•ด์ฃผ์—ˆ๋‹ค!!!


๋งˆ์น˜๋ฉฐ๐Ÿ™Œ

๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๋ฉด์„œ ๋‚ด๊ฐ€ ๋ญ˜ ๋” ๊ณต๋ถ€ํ•ด์•ผ ํ• ์ง€ ํ•œ๋ฒˆ ๋” ์ƒ๊ธฐํ•˜๊ณ  ๋ฐฐ์šฐ๋Ÿฌ ๊ฐ€๋ด์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค...์•ˆ๋‡ฝ... =3

profile
ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์ผ๊ธฐ ๐Ÿ’ญ

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