๐ ๋ฌธ์
์ต๋น๊ฐ์ ์ฃผ์ด์ง ๊ฐ ์ค์์ ๊ฐ์ฅ ์์ฃผ ๋์ค๋ ๊ฐ์ ์๋ฏธํฉ๋๋ค. ์ ์ ๋ฐฐ์ด array๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ต๋น๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ์ต๋น๊ฐ์ด ์ฌ๋ฌ ๊ฐ๋ฉด -1์ return ํฉ๋๋ค.
๐ ์ ํ์ฌํญ
- 0 < array์ ๊ธธ์ด < 100
- 0 ≤ array์ ์์ < 1000
๐ ์ ์ถ๋ ฅ ์
[1, 2, 3, 3, 3, 4] | 3 |
[1, 1, 2, 2] | -1 |
[1] | 1 |
๐ ์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #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) {
// array์ ์ต๋๊ฐ๋งํผ์ ๊ธธ์ด๋ฅผ ๊ฐ์ง ์๋ก์ด ๋ฐฐ์ด ์์ฑ
let newArray = new Array(Math.max(...array)+1).fill(0);
// array ๋ฐ๋ณต๋ฌธ์ ํตํด, ํด๋น ๊ฐ์ ํด๋นํ๋ index์ ๊ฐ += 1
for (let i = 0; i < array.length; i++) {
newArray[array[i]] += 1
}
// newArray์ ์ต๋๊ฐ์ ํด๋น ํ๋ index ์ถ๋ ฅ
// ๋ง์ฝ indexOf์ lastIndexOf๊ฐ ์ง์นญํ๋ ๊ฐ์ด ๊ฐ์ผ๋ฉด, -1 ์ถ๋ ฅ (์ค๋ณต์ธ ๊ฒฝ์ฐ ํ์ธ)
if (newArray.indexOf(Math.max(...newArray)) !== newArray.lastIndexOf(Math.max(...newArray))) {
return -1
} else {
return newArray.indexOf(Math.max(...newArray));
};
}
'๐งฉ Algorithm > ๐ง JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํผ์ ๋๋ ๋จน๊ธฐ (2) (0) | 2023.03.02 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ํผ์ ๋๋ ๋จน๊ธฐ (0) | 2023.02.28 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ค์๊ฐ ๊ตฌํ๊ธฐ (0) | 2023.02.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋๋จธ์ง ๊ตฌํ๊ธฐ (0) | 2023.02.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฐฐ์ด ๋๋ฐฐ ๋ง๋ค๊ธฐ (0) | 2023.02.14 |