ํฐ์คํ ๋ฆฌ ๋ทฐ
ํ๋ก๊ทธ๋๋จธ์ค ์ํฐ์ฝ๋ฉ ๋ฐ๋ชจ ๋ฌธ์ 1
๋๋์ด๋ฐ๐พ 2018. 10. 19. 01:51ํ๋ก๊ทธ๋๋จธ์ค์์ ์ ๊ณตํ๋ ์๊ณ ๋ฆฌ์ฆ๋ฌธ์ ๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํ์ด๋ดค์ต๋๋ค.
๋ฌธ์ ์ค๋ช
๊ธธ์ด๊ฐ n์ธ ๋ฐฐ์ด์ 1๋ถํฐ n๊น์ง ์ซ์๊ฐ ์ค๋ณต ์์ด ํ ๋ฒ์ฉ ๋ค์ด ์๋์ง๋ฅผ ํ์ธํ๋ ค๊ณ ํฉ๋๋ค.
1๋ถํฐ n๊น์ง ์ซ์๊ฐ ์ค๋ณต ์์ด ํ ๋ฒ์ฉ ๋ค์ด ์๋ ๊ฒฝ์ฐ true๋ฅผ, ์๋ ๊ฒฝ์ฐ false๋ฅผ ๋ฐํํ๋๋ก ํจ์ solution์ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๋ฐฐ์ด์ ๊ธธ์ด๋ 10๋ง ์ดํ์ ๋๋ค.
- ๋ฐฐ์ด์ ์์๋ 0 ์ด์ 10๋ง ์ดํ์ธ ์ ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
arr | result |
---|---|
[4, 1, 3, 2] | true |
[4, 1, 3] | false |
์ ์ถ๋ ฅ ์ ์ค๋ช
์
์ถ๋ ฅ ์ #1
์
๋ ฅ์ด [4, 1, 3, 2]๊ฐ ์ฃผ์ด์ง ๊ฒฝ์ฐ, ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 4์ด๋ฏ๋ก ๋ฐฐ์ด์๋ 1๋ถํฐ 4๊น์ง ์ซ์๊ฐ ๋ชจ๋ ๋ค์ด ์์ด์ผ ํฉ๋๋ค. [4, 1, 3, 2]์๋ 1๋ถํฐ 4๊น์ง์ ์ซ์๊ฐ ๋ชจ๋ ๋ค์ด ์์ผ๋ฏ๋ก true๋ฅผ ๋ฐํํ๋ฉด ๋ฉ๋๋ค.
์
์ถ๋ ฅ ์ #2
[4, 1, 3]์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ, ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 3์ด๋ฏ๋ก ๋ฐฐ์ด์๋ 1๋ถํฐ 3๊น์ง ์ซ์๊ฐ ๋ชจ๋ ๋ค์ด ์์ด์ผ ํฉ๋๋ค. [4, 1, 3]์๋ 2๊ฐ ์๊ณ 4๊ฐ ์์ผ๋ฏ๋ก false๋ฅผ ๋ฐํํ๋ฉด ๋ฉ๋๋ค.
100์ ์ด ๋์ฌ๋๊น์ง ์ฃผ๊ตฌ ์ฅ์ฐฝ ์์ ํ์ต๋๋ค. ์ฌ๊ธฐ์์ ๊ฒ์ฆ์ด 100ํ๋ก์ผ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ฌ๊ธฐ์๋ ๊ฒ์ฆ์ด ์๋๊ฑธ ์ฌ๋ฆด ์๋ ์์ผ๋๊น์ ใ ใ
solution.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | function solution(arr) { var answer = true var length = arr.length var obj = {} //์ค๋ณต๋์ง์๋ ์ซ์๋ฅผ ๋ด์ json ๊ฐ์ฒด var list = [] //์ค๋ณต์ด ํ์ฉ๋๋ ๋ฐฐ์ด for(var i=0;i<length;i++){ //json๊ฐ์ฒด์ list๋ฐฐ์ด์ arr๋ก ์ฃผ์ด์ง ๋ชจ๋ ๊ฐ์ ๋ฃ์ต๋๋ค. obj[arr[i]] = 0 //์ฌ๊ธฐ์ json์ key๊ฐ์ผ๋ก ๋ค์ด๊ฐ๊ฒ ์ฃ list[i] = arr[i] } var outofIndex = function(element){ //๋ฐ๋ณต์ ์ค๋์ stop return element<1 || element>length //๋ฒ์์ ๋ง์ง์์ ์ซ์๊ฐ ํ๋๋ผ๋ ์์ผ๋ฉด true ๋ฆฌํด.์์ผ๋ฉด false } answer = Object.keys(obj).length == list.length ? true : false //์ผํญ์ฐ์ฐ์ ๊ฐ์ฒด์ ํค ๋ฐฐ์ด๊ธธ์ด, list๋ฐฐ์ด ๊ธธ์ด ๋น๊ต if(answer == true){ //์ฒซ๋ฒ์งธ์ ํํฐ๋ง์ด ์๋์ ๋์๋ง ์ง์
answer = !(arr.some(outofIndex)) //outofIndex์ return ์กฐ๊ฑด์ ์ํํฉ๋๋ค. } return answer //์ต์ข
๊ฒฐ๊ณผ } var arr = [] var temp var rnum for(var i=0;i<100000; i++){ //10๋ง๊ฐ์ ๋ฐฐ์ด์ ์์ฑ arr[i] = i+1 } for(var i=0;i<10;i++){ //์๋ ๊ณผ์ ์ด๊ธดํ๋ฐ ๊ทธ๋ฅ 10๋ฒ๋ง ์์์ต๋๋ค. randNum = Math.floor(Math.random()*99999) temp = arr[i] arr[i] = arr[randNum] arr[randNum] = temp } console.log( solution(arr) ) | cs |
์ํฉ ๊ฐ์ ์ ์ข ๊ทน๋จ์ ์ผ๋ก ํ์ต๋๋ค. ์ด๊ฒ ์ ํ์ฑ์ด ๋ณด์ฅ ๋์ด๋ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ฉด ์ ์๋ฅผ ์์ค์ ์ค๋ณต์ด ํ๋๋ ์๋ ๋ฐฐ์ด์ ์ ์ธ ํ์ ์๊ณ ๋ฆฌ์ฆ์ ๋์์์ผ๋ดค์ต๋๋ค.
์ฌ๊ธฐ์ ์ ์ฉํ๋ ์กฐ๊ฑด์ ๋ ๊ฐ์ง ์ ๋๋ค.
1. ์ค๋ณต๋๋ ๊ฐ์ด ์๋๊ฐ?
2. ๋ฐฐ์ด ๊ธธ์ด๊ฐ n์ผ ๋ ๋ฐฐ์ด์ ์์ ๊ฐ์ด 1 ~ n ๊น์ง ์กด์ฌํ๋๊ฐ?
์ ๋๋ค. ํ ๊ฐ์ง ์กฐ๊ฑด ์์๋ผ๋ ์ด๊ธ๋๋ฉด ๋ฐ๋ก ๋์ด์ค์ผํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ณต๋ฌธ์ ๊ดํ ์ฝ๋๋ ์ต๋ํ ์ฑ๋ฅ์ด ์ข์ ์ชฝ์ผ๋ก ์์ฑํ๋๋ฐ
forEach๋ฌธ์ ์ฃผ๋ก ์ฐ๋ค๊ฐ ์ฑ๋ฅ์ฐจ์ด๊ฐ ์ข ์๋ค๊ณ ํด์ ๊ธฐ๋ณธ for๋ฌธ์ผ๋ก ๋ฐ๊ฟ์คฌ์ต๋๋ค.
์ฒ์์ obj ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ฑฐ๋ list ๋ฐฐ์ด์ ๋ง๋ค์ด์ ๋น๊ตํ๋ค๋๊ฒ ๋๋ฌด ๋ญ๋น์ธ๊ฐ ์ถ์๋๋ฐ ๊ทธ ๊ณผ์ ์ ์์ ์๊ฐ์ ํฌ๊ฒ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ํํ๊ฒ ์ฒดํฌ๋ ์ํด๋ดค์ง๋ง ๊ทธ ๋ถ๋ถ์ ๋ฐ๊พธ๊ณ ๋์ ์ ์์ ์ถ์ด ๋๋๊ตฐ์
๋ ๋ฒ์งธ ์กฐ๊ฑด์ ๋ฐ๋ณต๋ฌธ๋ some ํจ์๋ฅผ ์ฌ์ฉํ์์ต๋๋ค. return ๋ฌธ์ ์์ฑํ ์กฐ๊ฑด์ ๋ถํฉํ๊ฒ ๋๋ฉด true๋ฅผ ๋ฆฌํดํด์ฃผ๊ณ ๋ฐ๋ณต๋ฌธ์ ๋์ค์ ์ข ๋ฃ์์ผ์ค๋๋ค. ์ธ ๋ฐ์์ด ๋ ๋ ํ์๊ฐ ์์ฃ
์ ํ์ฑ์ด๋ ํจ์จ์ฑ์ด ๋ฌด์กฐ๊ฑด ์ ๋ ๊ฒ ๋์ค๋ ์ง๋ ์ ๋ ์ ๋ชจ๋ฅด๊ฒ ๋๋ฐ ํน์ ํธ์ ๋ถ ์์ผ์๋ฉด ๊ณต์ ๋ถํ๋๋ฆด๊ฒ์~
'ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค > ์คํ/ํ > ํ๋ฆฐํฐ (0) | 2019.01.07 |
---|---|
(2018๋ )KAKAO BLIND RECRUITMENT ์คํ์ฑํ ๋ฐฉ ๋ฌธ์ ํ์ด (0) | 2018.12.14 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต > ์ ๋ ฌ > ๊ฐ์ฅ ํฐ ์ (1) | 2018.10.28 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต > ์ ๋ ฌ > K๋ฒ์งธ ์ (0) | 2018.10.24 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต ํด์ (์์ฅ) (0) | 2018.10.23 |
- Total
- Today
- Yesterday
- ์๊ณ ๋ฆฌ์ฆ
- Spring Async
- JavaScript
- Promise error
- nestjs project
- ํ๋ก๊ทธ๋๋จธ์ค
- Spring
- nestjs directory
- nestjs configService
- nestjs typeorm
- typeorm
- backend-framework
- DeferredResult
- docker mysql
- ๋น๋๊ธฐ ์์ฒญ
- node.js backend
- nestjs config
- Promise bulk
- node.js
- Request_Limit_Exceeded
- nestjs doc
- ๊ธฐ์์ฒญAPI
- @nestjs/config
- android
- nestjs/cli
- NestJS
- typeorm ์ฐ๊ฒฐ
- foreignkey
- nestjs module
- sequelize
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |