ν°μ€ν 리 λ·°
(2018λ )KAKAO BLIND RECRUITMENT μ€νμ±ν λ°© λ¬Έμ νμ΄
λλμ΄λ°πΎ 2018. 12. 14. 17:43λ¬Έμ μ€λͺ
μ€νμ±ν λ°©
μΉ΄μΉ΄μ€ν‘ μ€νμ±ν λ°©μμλ μΉκ΅¬κ° μλ μ¬λλ€κ³Ό λνλ₯Ό ν μ μλλ°, λ³Έλ λλ€μμ΄ μλ κ°μμ λλ€μμ μ¬μ©νμ¬ μ±ν λ°©μ λ€μ΄κ° μ μλ€.
μ μ μ¬μμΈ κΉν¬λ£¨λ μΉ΄μΉ΄μ€ν‘ μ€ν μ±ν λ°©μ κ°μ€ν μ¬λμ μν΄, λ€μν μ¬λλ€μ΄ λ€μ΄μ€κ³ , λκ°λ κ²μ μ§μΌλ³Ό μ μλ κ΄λ¦¬μμ°½μ λ§λ€κΈ°λ‘ νλ€. μ±ν λ°©μ λκ΅°κ° λ€μ΄μ€λ©΄ λ€μ λ©μμ§κ° μΆλ ₯λλ€.
[λλ€μ]λμ΄ λ€μ΄μμ΅λλ€.
μ±ν λ°©μμ λκ΅°κ° λκ°λ©΄ λ€μ λ©μμ§κ° μΆλ ₯λλ€.
[λλ€μ]λμ΄ λκ°μ΅λλ€.
μ±ν λ°©μμ λλ€μμ λ³κ²½νλ λ°©λ²μ λ€μκ³Ό κ°μ΄ λ κ°μ§μ΄λ€.
- μ±ν λ°©μ λκ° ν, μλ‘μ΄ λλ€μμΌλ‘ λ€μ λ€μ΄κ°λ€.
- μ±ν λ°©μμ λλ€μμ λ³κ²½νλ€.
λλ€μμ λ³κ²½ν λλ κΈ°μ‘΄μ μ±ν λ°©μ μΆλ ₯λμ΄ μλ λ©μμ§μ λλ€μλ μ λΆ λ³κ²½λλ€.
μλ₯Ό λ€μ΄, μ±ν
λ°©μ Muzi
μ Prodo
λΌλ λλ€μμ μ¬μ©νλ μ¬λμ΄ μμλλ‘ λ€μ΄μ€λ©΄ μ±ν
λ°©μλ λ€μκ³Ό κ°μ΄ λ©μμ§κ° μΆλ ₯λλ€.
Muziλμ΄ λ€μ΄μμ΅λλ€.
Prodoλμ΄ λ€μ΄μμ΅λλ€.
μ±ν λ°©μ μλ μ¬λμ΄ λκ°λ©΄ μ±ν λ°©μλ λ€μκ³Ό κ°μ΄ λ©μμ§κ° λ¨λλ€.
Muziλμ΄ λ€μ΄μμ΅λλ€.
Prodoλμ΄ λ€μ΄μμ΅λλ€.
Muziλμ΄ λκ°μ΅λλ€.
Muziκ° λκ°ν λ€μ λ€μ΄μ¬ λ, Prodo λΌλ λλ€μμΌλ‘ λ€μ΄μ¬ κ²½μ° κΈ°μ‘΄μ μ±ν λ°©μ λ¨μμλ Muziλ Prodoλ‘ λ€μκ³Ό κ°μ΄ λ³κ²½λλ€.
Prodoλμ΄ λ€μ΄μμ΅λλ€.
Prodoλμ΄ λ€μ΄μμ΅λλ€.
Prodoλμ΄ λκ°μ΅λλ€.
Prodoλμ΄ λ€μ΄μμ΅λλ€.
μ±ν λ°©μ μ€λ³΅ λλ€μμ νμ©νκΈ° λλ¬Έμ, νμ¬ μ±ν λ°©μλ ProdoλΌλ λλ€μμ μ¬μ©νλ μ¬λμ΄ λ λͺ μ΄ μλ€. μ΄μ , μ±ν λ°©μ λ λ²μ§Έλ‘ λ€μ΄μλ Prodoκ° RyanμΌλ‘ λλ€μμ λ³κ²½νλ©΄ μ±ν λ°© λ©μμ§λ λ€μκ³Ό κ°μ΄ λ³κ²½λλ€.
Prodoλμ΄ λ€μ΄μμ΅λλ€.
Ryanλμ΄ λ€μ΄μμ΅λλ€.
Prodoλμ΄ λκ°μ΅λλ€.
Prodoλμ΄ λ€μ΄μμ΅λλ€.
μ±ν λ°©μ λ€μ΄μ€κ³ λκ°κ±°λ, λλ€μμ λ³κ²½ν κΈ°λ‘μ΄ λ΄κΈ΄ λ¬Έμμ΄ λ°°μ΄ recordκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, λͺ¨λ κΈ°λ‘μ΄ μ²λ¦¬λ ν, μ΅μ’ μ μΌλ‘ λ°©μ κ°μ€ν μ¬λμ΄ λ³΄κ² λλ λ©μμ§λ₯Ό λ¬Έμμ΄ λ°°μ΄ ννλ‘ return νλλ‘ solution ν¨μλ₯Ό μμ±νλΌ.
μ νμ¬ν
- recordλ λ€μκ³Ό κ°μ λ¬Έμμ΄μ΄ λ΄κΈ΄ λ°°μ΄μ΄λ©°, κΈΈμ΄λ
1
μ΄μ100,000
μ΄νμ΄λ€. - λ€μμ recordμ λ΄κΈ΄ λ¬Έμμ΄μ λν μ€λͺ
μ΄λ€.
- λͺ¨λ μ μ λ [μ μ μμ΄λ]λ‘ κ΅¬λΆνλ€.
- [μ μ μμ΄λ] μ¬μ©μκ° [λλ€μ]μΌλ‘ μ±ν
λ°©μ μ
μ₯ -
Enter [μ μ μμ΄λ] [λλ€μ]
(ex.Enter uid1234 Muzi
) - [μ μ μμ΄λ] μ¬μ©μκ° μ±ν
λ°©μμ ν΄μ₯ -
Leave [μ μ μμ΄λ]
(ex.Leave uid1234
) - [μ μ μμ΄λ] μ¬μ©μκ° λλ€μμ [λλ€μ]μΌλ‘ λ³κ²½ -
Change [μ μ μμ΄λ] [λλ€μ]
(ex.Change uid1234 Muzi
) - 첫 λ¨μ΄λ Enter, Leave, Change μ€ νλμ΄λ€.
- κ° λ¨μ΄λ 곡백μΌλ‘ ꡬλΆλμ΄ μμΌλ©°, μνλ²³ λλ¬Έμ, μλ¬Έμ, μ«μλ‘λ§ μ΄λ£¨μ΄μ Έμλ€.
- μ μ μμ΄λμ λλ€μμ μνλ²³ λλ¬Έμ, μλ¬Έμλ₯Ό ꡬλ³νλ€.
- μ μ μμ΄λμ λλ€μμ κΈΈμ΄λ
1
μ΄μ10
μ΄νμ΄λ€. - μ±ν λ°©μμ λκ° μ μ κ° λλ€μμ λ³κ²½νλ λ± μλͺ» λ μ λ ₯μ μ£Όμ΄μ§μ§ μλλ€.
μ μΆλ ₯ μ
record | result |
---|---|
["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"] | ["Prodoλμ΄ λ€μ΄μμ΅λλ€.", "Ryanλμ΄ λ€μ΄μμ΅λλ€.", "Prodoλμ΄ λκ°μ΅λλ€.", "Prodoλμ΄ λ€μ΄μμ΅λλ€."] |
μ μΆλ ₯ μ μ€λͺ
μ
μΆλ ₯ μ #1
λ¬Έμ μ μ€λͺ
κ³Ό κ°λ€.
λ€μ΄μ€κ³ λκ°λ건 ν¬κ² λ¬Έμ κ° μλλ° μ€μν κ²μ Change, μ¦ λλ€μμ λ°κΎΈλ κ²½μ°μ λλ€.
*****************************************************************************
μ±ν λ°©μμ λλ€μμ λ³κ²½νλ λ°©λ²μ λ€μκ³Ό κ°μ΄ λ κ°μ§μ΄λ€.
- μ±ν λ°©μ λκ° ν, μλ‘μ΄ λλ€μμΌλ‘ λ€μ λ€μ΄κ°λ€.
- μ±ν λ°©μμ λλ€μμ λ³κ²½νλ€.
λλ€μμ λ³κ²½ν λλ κΈ°μ‘΄μ μ±ν λ°©μ μΆλ ₯λμ΄ μλ λ©μμ§μ λλ€μλ μ λΆ λ³κ²½λλ€.
*****************************************************************************
μ΄ μ μ κ³ λ €ν΄μ ν΄κ²° μμλ₯Ό μΈμ°μλ©΄
1. μ£Όμ΄μ§ μλ£ recordλ₯Ό {"μμ΄λ" : "μ΄λ¦" } μ κ°μ²΄ννλ‘ λ³ν
2. κ°μ²΄λ‘ λ³ννλ κ³Όμ μμ μμ΄λλ λμΌνλ° μ΄λ¦μ΄ λ°λλ κ²½μ°λ₯Ό 체ν¬
3. μ±ν λ°© λ°μμ λ³κ²½νλ κ²μ λ°μ΄ν°μ λ³νμ ν΄λΉλμ§ μκ³ , μ±ν λ°© μμμ λ°λ κ²λ§ ν΄λΉλκΈ° λλ¬Έμ Change λ§ ν΄λΉλ¨.
4. Change νλμ λν΄ λ³κ²½λ μ΄λ¦μ λμΉνμ¬ μλ³Έ λ°μ΄ν° λ³κ²½ ν return
μ½λλ₯Ό νλ²μ λ€ μμ±νμ§ μκ³ λ¨κ³λ³λ‘ κ²°κ³Όλ₯Ό νμΈν΄κ°λ©΄μ μ°λλ‘ νκ² μ΅λλ€.
1λ¨κ³ : μ£Όμ΄μ§ recordλ₯Ό λ°°μ΄λ‘ μ 리νκΈ°
1 2 3 4 5 6 7 8 9 10 11 12 13 | function solution(record) { var nick = {}, a = record.map(v => v.split(' ')) console.log(a) } let record = [ "Enter uid1234 Muzi", "Enter uid4567 Prodo", "Leave uid1234", "Enter uid1234 Prodo", "Change uid4567 Ryan" ] solution(record) | cs |
κ²°κ³Ό κ°
[ [ 'Enter', 'uid1234', 'Muzi' ],
[ 'Enter', 'uid4567', 'Prodo' ],
[ 'Leave', 'uid1234' ],
[ 'Enter', 'uid1234', 'Prodo' ],
[ 'Change', 'uid4567', 'Ryan' ] ]
=> μ£Όμ΄μ§ recordκ° λμ΄μ°κΈ°λ‘ ꡬλΆλμ΄μκΈ° λλ¬Έμ μ¬μ©νκΈ° μ½κ² split()λ₯Ό μ΄μ©ν΄μ λ°°μ΄ννλ‘ λ°μ΄ν°λ₯Ό λ§λ€μ΄μ€λλ€.
2λ¨κ³ : μμ΄λλ λμΌνλ° μ΄λ¦μ΄ λ°λλ κ²½μ°λ₯Ό κ°μ²΄μ λ΄μ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | function solution(record) { var nick = {} var a = record.map(v => v.split(' ')) a.slice().reverse().forEach(v=> { if(v[2] && !nick[v[1]]){ nick[v[1]] = v[2] } }) console.log(nick) } let record = [ "Enter uid1234 Muzi", "Enter uid4567 Prodo", "Leave uid1234", "Enter uid1234 Prodo", "Change uid4567 Ryan" ] solution(record); | cs |
κ²°κ³Ό κ°
{ uid4567: 'Ryan', uid1234: 'Prodo' }
=> μ£Όμ΄μ§ recordμμ Change νλμ ν κ° λ°μ μμ§λ§ μ΄λ¦μ λ°κΎΈλ λ°©λ²μ λ κ°μ§ μ λλ€. uid1234 μ¬μ©μκ° μ±ν λ°© λ°μμ μ΄λ¦μ λ°κΏ¨λ€κ³ λ³Ό μ μκΈ° λλ¬Έμ λ κ°μ κ°μ²΄μ 보λ₯Ό λ°ννκ² λμ£ .
sliceλ₯Ό νλ μ΄μ λ μμ 볡μ¬λ₯Ό νκΈ° μν¨μΈλ° slice λ₯Ό μ°μ§ μμΌλ©΄ μλ³Έ record λ°°μ΄μ΄ reverse λμ΄λ²λ¦½λλ€. μ±ν λ°©μ μμκ° μ€μνκΈ° λλ¬Έμ μ΄μ μ μ£Όμν΄μΌ ν©λλ€.
3λ¨κ³ : μ΅μ’ μ μΌλ‘ λμ€λ μΆλ ₯λ¬Έμ μμ±νλ€. (μ΄λ¦μ΄ λ°λ κ²½μ°λ₯Ό μμ ν΄μ μΆλ ₯)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | function solution(record) { var nick = {} var a = record.map(v => v.split(' ')) a.slice().reverse().forEach(v=> { if(v[2] && !nick[v[1]]){ nick[v[1]] = v[2] } }) return a.filter(v => { return v[0] !== 'Change' }).map(v => { return v[0] === 'Enter' ? nick[v[1]] + 'λμ΄ λ€μ΄μμ΅λλ€.' : nick[v[1]] + 'λμ΄ λκ°μ΅λλ€.' }) } let record = [ "Enter uid1234 Muzi", "Enter uid4567 Prodo", "Leave uid1234", "Enter uid1234 Prodo", "Change uid4567 Ryan" ] console.log(solution(record)); | cs |
κ²°κ³Ό κ°
[ 'Prodoλμ΄ λ€μ΄μμ΅λλ€.',
'Ryanλμ΄ λ€μ΄μμ΅λλ€.',
'Prodoλμ΄ λκ°μ΅λλ€.',
'Prodoλμ΄ λ€μ΄μμ΅λλ€.' ]
=> κΈ°λ³Έμ μΌλ‘ μΆλ ₯λ¬Έμ λ€μ΄μ€κ³ λκ°λ κ²½μ°μλ§ λ°μν©λλ€. filterλ₯Ό ν΅ν΄ Changeκ° μλ κ²½μ°λ₯Ό λ°°μ΄λ‘ λ°ν μν΅λλ€. κ·Έ λ°°μ΄μ mapμ μ΄μ©νμ¬ μννλλ°, EnterμΌ κ²½μ°λ λ€μ΄μμ΅λλ€. λΌλ λ¬Έμ₯μ μΆλ ₯νκ³ μ¬κΈ°μ μ€μν κ²μ μκΉ λ§λ€μ΄λ¨λ nick κ°μ²΄μ λλ€.
Enterλ Leaveμ λ΄κ²¨μλ uid κ°κ³Ό nick κ°μ²΄μ μλ uid κ°μ 맀μΉνμ¬ uid ν€κ° κ°κ³ μλ value κ°μ μΆλ ₯ μν΅λλ€.
{ uid4567: 'Ryan', uid1234: 'Prodo' }
μκΉ μ΄λ° nick κ°μ²΄λ₯Ό λ§λ€μ΄λ¨μμ£ ? κ·ΈλΌ uid4567μ μμ΄λλ₯Ό κ°μ§ μ΄λ¦μ RyanμΌλ‘ μ λΆ λ°λ κ²μ λλ€.
'νλ‘κ·Έλλ¨Έμ€ μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νλ‘κ·Έλλ¨Έμ€ > μμ νμ > λͺ¨μκ³ μ¬ (0) | 2019.01.11 |
---|---|
νλ‘κ·Έλλ¨Έμ€ > μ€ν/ν > νλ¦°ν° (0) | 2019.01.07 |
νλ‘κ·Έλλ¨Έμ€ μ½λ©ν μ€νΈ μ°μ΅ > μ λ ¬ > κ°μ₯ ν° μ (1) | 2018.10.28 |
νλ‘κ·Έλλ¨Έμ€ μ½λ©ν μ€νΈ μ°μ΅ > μ λ ¬ > Kλ²μ§Έ μ (0) | 2018.10.24 |
νλ‘κ·Έλλ¨Έμ€ μ½λ©ν μ€νΈ μ°μ΅ ν΄μ (μμ₯) (0) | 2018.10.23 |
- Total
- Today
- Yesterday
- android
- nestjs config
- μκ³ λ¦¬μ¦
- nestjs project
- DeferredResult
- Request_Limit_Exceeded
- Spring Async
- Promise bulk
- node.js
- nestjs directory
- JavaScript
- node.js backend
- NestJS
- backend-framework
- nestjs typeorm
- Promise error
- νλ‘κ·Έλλ¨Έμ€
- κΈ°μμ²API
- nestjs configService
- sequelize
- typeorm
- λΉλκΈ° μμ²
- nestjs module
- @nestjs/config
- nestjs doc
- foreignkey
- typeorm μ°κ²°
- Spring
- docker mysql
- nestjs/cli
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |