ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ ํ์ด
์ฌ์ฉ ์ธ์ด - ์๋ฐ์คํฌ๋ฆฝํธ JavaScript JS
1. ๊ฐ๊น์ด 1 ์ฐพ๊ธฐ
1) โ ๋ฌธ์ ์ค๋ช
์ ์ ๋ฐฐ์ด arr๊ฐ ์ฃผ์ด์ง๋๋ค. ์ด๋ arr์ ์์๋ 1 ๋๋ 0์
๋๋ค. ์ ์ idx๊ฐ ์ฃผ์ด์ก์ ๋, idx๋ณด๋ค ํฌ๋ฉด์ ๋ฐฐ์ด์ ๊ฐ์ด 1์ธ ๊ฐ์ฅ ์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์์ ๋ฐํํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๋จ, ๋ง์ฝ ๊ทธ๋ฌํ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด -1์ ๋ฐํํฉ๋๋ค.
2) ๐ซ ์ ํ ์ฌํญ
- 3 ≤ arr์ ๊ธธ์ด ≤ 100,000
- arr์ ์์๋ ์ ๋ถ 1 ๋๋ 0์ ๋๋ค.
3) โ๏ธ ์ ์ถ๋ ฅ ์
arr | idx | result |
[0, 0, 0, 1] | 1 | 3 |
[1, 0, 0, 1, 0, 0] | 4 | -1 |
[1, 1, 1, 1, 0] | 3 | 3 |
2. ์ฌ์ฉํ ๋ฉ์๋: for๋ฌธ
for๋ฌธ์ผ๋ก ๋ฐฐ์ด์ ๋ชจ๋ ์์ ์ํ
๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ํํ๋ฉฐ arr[i]๊ฐ 1์ด๋ฉด index๊ฐ, ๊ทธ๋ฌ๋๊น i๋ฅผ returnํ๊ณ ๊ทธ๋ฌํ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด -1์ returnํ๋๋ก ํ์ด ์์ฑ
3. ๋ต์
1) ๋์ ํ์ด
const solution = (arr, idx) => {
for (let i=idx; i<arr.length; i++) {
if (arr[i] === 1) {return i}
}
return -1
}
- ์๋ฌด๋ฆฌ ์๊ฐํด๋ for๋ฌธ ๋ฐ์ ๋ ์ค๋ฅด์ง ์์์ for๋ฌธ์ผ๋ก ์์ฑํ ๋ต์. ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ํ๋๋ค๊ณ ํ๋ฉด ์์ง for๋ฌธ๋ง๊ณ ๋ค์ํ ๋ฐฉ๋ฒ์ ๋ ์ฌ๋ฆฌ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์์ ๋ต๋ตํ๋ค. ๐ฅ
- ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๊ณ ๋ค์ํ ๋ฉ์๋์ ๋ํด ๋ ๋๊ณ ๊น๊ฒ ์ดํดํด์ผ ํ ํ์์ฑ์ ๋ผ์ ๋ฆฌ๊ฒx100 ๋๊ผ๋ค.
2) ๋ค๋ฅธ ์ฌ๋์ ํ์ด
(1) indexOf()๋ฅผ ์ฌ์ฉํ ๋ฐฉ๋ฒ
const solution=(a,i)=>a.indexOf(1,i);
์ด๋ ๊ฒ ๊ฐ๋จํ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์๋ค๋.. ์์ง ๊ฐ ๊ธธ์ด ๋ฉ๊ณ ๋ ํํ๊ตฌ๋
Array.prototype.indexOf()
- indexOf() ๋ฉ์๋๋ ์ฃผ์ด์ง ์์๋ฅผ ๋ฐฐ์ด์์ ์ฐพ์ ์ ์๋ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ฉฐ, ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ์๋ -1๋ฅผ returnํ๋ค.
- ์์ ํ์ด์์๋ `๋ฐฐ์ด a`์์ ๊ฐ์ด 1์ธ ์์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์์ ๋ฐํํ๋ค.
- `๋งค๊ฐ๋ณ์ i`๋ indexOf() ๋ฉ์๋์ ๋ ๋ฒ์งธ ์ธ์๋ก, ๊ฒ์์ ์์ํ ์ธ๋ฑ์ค๋ฅผ ์ง์ ํ๋ค.
- ์ฃผ์ด์ง ์ธ๋ฑ์ค i์์๋ถํฐ ์์ํ์ฌ(๋ฐ๋ก i์ ๊ฐ์ ์ฃผ์ง ์์ ๊ฒฝ์ฐ 0๋ถํฐ ๊ฒ์) ๋ฐฐ์ด a์์ ์ฒซ ๋ฒ์งธ๋ก ๋ฐ๊ฒฌ๋๋ ๊ฐ์ด 1์ธ ์์์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๊ณ , i ์ดํ์ 1์ด ์๋ค๋ฉด -1๋ฅผ ๋ฆฌํด
(2) Array.prototype.findIndex()๋ฅผ ์ฌ์ฉํ ๋ฐฉ๋ฒ
function solution(arr, idx) {
return arr.findIndex((v, i) => idx <= i && v === 1);
}
- findIndex() ๋ฉ์๋๋ ์ฃผ์ด์ง ํ๋ณ ํจ์๋ฅผ ๋ง์กฑํ๋ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ ๋ํ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ค. ๋ง์กฑํ๋ ์์๊ฐ ์์ผ๋ฉด -1์ ๋ฐํ
- v๋ ํ์ฌ ์์์ ๊ฐ, i๋ ์ธ๋ฑ์ค๋ฅผ ์๋ฏธ
- idx <= i && v === 1์ ํ์ฌ ์์์ ์ธ๋ฑ์ค๊ฐ `idx` ์ด์์ด๊ณ , ๊ฐ์ด 1์ธ ๊ฒฝ์ฐ์ true๋ฅผ ๋ฐํํ๋ค.
- ๋ง์กฑํ๋ ๊ฐ์ด ์์ผ๋ฉด -1๋ฅผ ๋ฆฌํด
'๐ป Programming > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค Lv. 0] 369๊ฒ์ (0) | 2023.08.02 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค Lv. 1] ์ฝ๋ผ์ธ ์ถ์ธก (0) | 2023.08.02 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv. 0] ํน๋ณํ ์ด์ฐจ์ ๋ฐฐ์ด 2 (0) | 2023.07.28 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv. 0] ๋ฐฐ์ด ํ์ ์ํค๊ธฐ (2) | 2023.07.26 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv. 0] ์ธ๋ฑ์ค ๋ฐ๊พธ๊ธฐ (0) | 2023.06.25 |