ํด๋น ๋ฌธ์ ๋ jeky22๋์ Velog๋ฅผ ์ฐธ๊ณ ํด ํ์ด์ ๋์์ด ๋๋๋ก ์ ๋๋ฆ์ ํด์์ ์ถ๊ฐํ์ต๋๋ค.
๐งก๋ฌธ์ ์ค๋ช
์ผ๋ ฌ๋ก ๋์ด๋ n๊ฐ์ ํ์ ์ด ์์ต๋๋ค. ๋ชจ๋ ํ์ ์๋ ์๋ก ๋ค๋ฅธ ์ซ์๊ฐ ์จ์ ธ ์์ต๋๋ค. ๋น์ ์ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉด์ ํ์ ๋ค์ ๋จ 1๊ฐ๋ง ๋จ์ ๋๊น์ง ๊ณ์ ํฐํธ๋ฆฌ๋ ค๊ณ ํฉ๋๋ค.
์ฌ๊ธฐ์ ์กฐ๊ฑด์ด ์์ต๋๋ค. ์ธ์ ํ ๋ ํ์ ์ค์์ ๋ฒํธ๊ฐ ๋ ์์ ํ์ ์ ํฐํธ๋ฆฌ๋ ํ์๋ ์ต๋ 1๋ฒ๋ง ํ ์ ์์ต๋๋ค. ์ฆ, ์ด๋ค ์์ ์์ ์ธ์ ํ ๋ ํ์ ์ค ๋ฒํธ๊ฐ ๋ ์์ ํ์ ์ ํฐํธ๋ ธ๋ค๋ฉด, ๊ทธ ์ดํ์๋ ์ธ์ ํ ๋ ํ์ ์ ๊ณ ๋ฅธ ๋ค ๋ฒํธ๊ฐ ๋ ํฐ ํ์ ๋ง์ ํฐํธ๋ฆด ์ ์์ต๋๋ค.
๋น์ ์ ์ด๋ค ํ์ ์ด ์ตํ๊น์ง ๋จ์ ์ ์๋์ง ์์๋ณด๊ณ ์ถ์ต๋๋ค. ์์ ์์ ๋ ์กฐ๊ฑด๋๋ก ํ์ ์ ํฐํธ๋ฆฌ๋ค ๋ณด๋ฉด, ์ด๋ค ํ์ ์ ์ตํ๊น์ง ๋จ์ ์๋ ์์ง๋ง, ์ด๋ค ํ์ ์ ๋ฌด์จ ์๋ฅผ ์ฐ๋๋ผ๋ ๋ง์ง๋ง๊น์ง ๋จ๊ธฐ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ ์๋ ์์ต๋๋ค.
์ผ๋ ฌ๋ก ๋์ด๋ ํ์ ๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด a๊ฐ ์ฃผ์ด์ง๋๋ค. ์์ ์์ ๋ ๊ท์น๋๋ก ํ์ ๋ค์ 1๊ฐ๋ง ๋จ์ ๋๊น์ง ํฐํธ๋ ธ์ ๋ ์ตํ๊น์ง ๋จ๊ธฐ๋ ๊ฒ์ด ๊ฐ๋ฅํ ํ์ ๋ค์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐์ ํ ์ฌํญ
a
์ ๊ธธ์ด๋ 1 ์ด์ 1,000,000 ์ดํ์
๋๋ค.a[i]
๋ i+1 ๋ฒ์งธ ํ์ ์ ์จ์ง ์ซ์๋ฅผ ์๋ฏธํฉ๋๋ค.a
์ ๋ชจ๋ ์๋ -1,000,000,000 ์ด์ 1,000,000,000 ์ดํ์ธ ์ ์์
๋๋ค.a
์ ๋ชจ๋ ์๋ ์๋ก ๋ค๋ฆ
๋๋ค.๐์ ์ถ๋ ฅ ์
a | result |
---|---|
[9,-1,-5] | 3 |
[-16,27,65,-2,58,-92,-71,-68,-61,-33] | 6 |
๐์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
[9, -1, -5]
์์ -1, -5๊ฐ ์จ์ง ํ์ ์ ๊ณ ๋ฅธ ๋ค, -1์ด ์จ์ง ํ์ (๋ฒํธ๊ฐ ๋ ํฐ ๊ฒ)์ ํฐํธ๋ฆฝ๋๋ค.[9, -5]
์์ 9, -5๊ฐ ์จ์ง ํ์ ์ ๊ณ ๋ฅธ ๋ค, -5๊ฐ ์จ์ง ํ์ (๋ฒํธ๊ฐ ๋ ์์ ๊ฒ)์ ํฐํธ๋ฆฝ๋๋ค.[9, -1, -5]
์์ 9, -1์ด ์จ์ง ํ์ ์ ๊ณ ๋ฅธ ๋ค, 9๊ฐ ์จ์ง ํ์ (๋ฒํธ๊ฐ ๋ ํฐ ๊ฒ)์ ํฐํธ๋ฆฝ๋๋ค.[-1, -5]
์์ -1, -5๊ฐ ์จ์ง ํ์ ์ ๊ณ ๋ฅธ ๋ค, -5๊ฐ ์จ์ง ํ์ (๋ฒํธ๊ฐ ๋ ์์ ๊ฒ)์ ํฐํธ๋ฆฝ๋๋ค.[9, -1, -5]
์์ 9, -1์ด ์จ์ง ํ์ ์ ๊ณ ๋ฅธ ๋ค, 9๊ฐ ์จ์ง ํ์ (๋ฒํธ๊ฐ ๋ ํฐ ๊ฒ)์ ํฐํธ๋ฆฝ๋๋ค.[-1, -5]
์์ -1, -5๊ฐ ์จ์ง ํ์ ์ ๊ณ ๋ฅธ ๋ค, -1์ด ์จ์ง ํ์ (๋ฒํธ๊ฐ ๋ ํฐ ๊ฒ)์ ํฐํธ๋ฆฝ๋๋ค.์ ์ถ๋ ฅ ์ #2
๐๋์ ํ์ด
function solution(a) {
// ์ข์ธก ๋น๊ต์์
let l = a[0]
// ์ฐ์ธก ๋น๊ต์์
let r = a[a.length-1]
// ์์๋ณด๋ค ์์ ์๋ค์ ๋ชจ์
const smallNums = []
// ์์ ์ํ
for(let i = 1 ; i < a.length - 1 ; i ++) {
// ์ฐ์ธก,์ข์ธก ์์๋ณด๋ค ํ๋๋ผ๋ ์๋ค๋ฉด ์ตํ๊น์ง ๋จ๊ธฐ๋๊ฒ์ด ๊ฐ๋ฅํจ
// ์ข์ธก ์์๋ณด๋ค ํฐ ๊ฒฝ์ฐ (๋ ํฐ ์์๋ฅผ ํฐ๋จ๋ฆฌ๊ณ , ๊ธฐ์ค์ ํ์ฌ ์์๋ก)
if(l > a[i]) {
l = a[i]
smallNums.push(l)
}
// ์ฐ์ธก ์์๋ณด๋ ํฐ ๊ฒฝ์ฐ (๋ ํฐ ์์๋ฅผ ํฐ๋จ๋ฆฌ๊ณ , ๊ธฐ์ค์ ํ์ฌ ์์๋ก)
if(r > a[a.length-1-i]) {
r = a[a.length-1-i]
smallNums.push(r)
}
}
// +2๊ฐ ๋๋ ์ด์ : ์ข, ์ฐ์ธก ์์๋ ํญ์ ๋จ์ ์ ์๊ธฐ ๋๋ฌธ(๋ฒํธ๊ฐ ๋ ์์ ํ์ ์ ํ ๋ฒ ํฐ๋จ๋ฆด ์ ์๊ธฐ์)
return new Set(smallNums).size+2
}