[μ€μννΈ μκ³ λ¦¬μ¦] νλ‘κ·Έλλ¨Έμ€: μμ κ²μ
λ¬Έμ
https://programmers.co.kr/learn/courses/30/lessons/72412
μ½λ©ν μ€νΈ μ°μ΅ - μμ κ²μ
["java backend junior pizza 150","python frontend senior chicken 210","python frontend senior chicken 150","cpp backend senior pizza 260","java backend junior chicken 80","python backend senior chicken 50"] ["java and backend and junior and pizza 100","pyt
programmers.co.kr
λ¬Έμ μ€λͺ
[λ³Έ λ¬Έμ λ μ νμ±κ³Ό ν¨μ¨μ± ν μ€νΈ κ°κ° μ μκ° μλ λ¬Έμ μ λλ€.]
μΉ΄μΉ΄μ€λ νλ°κΈ° κ²½λ ₯ κ°λ°μ 곡κ°μ±μ©μ μ§ν μ€μ μμΌλ©° νμ¬ μ§μμ μ μμ μ½λ©ν μ€νΈκ° μ’ λ£λμμ΅λλ€. μ΄λ² μ±μ©μμ μ§μμλ μ§μμ μμ± μ μλμ κ°μ΄ 4κ°μ§ νλͺ©μ λ°λμ μ ννλλ‘ νμμ΅λλ€.
- μ½λ©ν μ€νΈ μ°Έμ¬ κ°λ°μΈμ΄ νλͺ©μ cpp, java, python μ€ νλλ₯Ό μ νν΄μΌ ν©λλ€.
- μ§μ μ§κ΅° νλͺ©μ backendμ frontend μ€ νλλ₯Ό μ νν΄μΌ ν©λλ€.
- μ§μ κ²½λ ₯κ΅¬λΆ νλͺ©μ juniorμ senior μ€ νλλ₯Ό μ νν΄μΌ ν©λλ€.
- μ νΈνλ μμΈνΈλλ‘ chickenκ³Ό pizza μ€ νλλ₯Ό μ νν΄μΌ ν©λλ€.
μΈμ¬μμ
νμ 근무νκ³ μλ λλμ¦λ μ½λ©ν
μ€νΈ κ²°κ³Όλ₯Ό λΆμνμ¬ μ±μ©μ μ°Έμ¬ν κ°λ°νλ€μ μ 곡νκΈ° μν΄ μ§μμλ€μ μ§μ 쑰건μ μ ννλ©΄ ν΄λΉ 쑰건μ λ§λ μ§μμκ° λͺ λͺ
μΈ μ§ μ½κ² μ μ μλ λꡬλ₯Ό λ§λ€κ³ μμ΅λλ€.
μλ₯Ό λ€μ΄, κ°λ°νμμ κΆκΈν΄νλ λ¬Έμμ¬νμ λ€μκ³Ό κ°μ ννκ° λ μ μμ΅λλ€.
μ½λ©ν
μ€νΈμ javaλ‘ μ°Έμ¬νμΌλ©°, backend μ§κ΅°μ μ ννκ³ , junior κ²½λ ₯μ΄λ©΄μ, μμΈνΈλλ‘ pizzaλ₯Ό μ νν μ¬λ μ€ μ½λ©ν
μ€νΈ μ μλ₯Ό 50μ μ΄μ λ°μ μ§μμλ λͺ λͺ
μΈκ°?
λ¬Όλ‘ μ΄ μΈμλ κ° κ°λ°νμ μν©μ λ°λΌ μλμ κ°μ΄ λ€μν ννμ λ¬Έμκ° μμ μ μμ΅λλ€.
- μ½λ©ν μ€νΈμ pythonμΌλ‘ μ°Έμ¬νμΌλ©°, frontend μ§κ΅°μ μ ννκ³ , senior κ²½λ ₯μ΄λ©΄μ, μμΈνΈλλ‘ chickenμ μ νν μ¬λ μ€ μ½λ©ν μ€νΈ μ μλ₯Ό 100μ μ΄μ λ°μ μ¬λμ λͺ¨λ λͺ λͺ μΈκ°?
- μ½λ©ν μ€νΈμ cppλ‘ μ°Έμ¬νμΌλ©°, senior κ²½λ ₯μ΄λ©΄μ, μμΈνΈλλ‘ pizzaλ₯Ό μ νν μ¬λ μ€ μ½λ©ν μ€νΈ μ μλ₯Ό 100μ μ΄μ λ°μ μ¬λμ λͺ¨λ λͺ λͺ μΈκ°?
- backend μ§κ΅°μ μ ννκ³ , senior κ²½λ ₯μ΄λ©΄μ μ½λ©ν μ€νΈ μ μλ₯Ό 200μ μ΄μ λ°μ μ¬λμ λͺ¨λ λͺ λͺ μΈκ°?
- μμΈνΈλλ‘ chickenμ μ νν μ¬λ μ€ μ½λ©ν μ€νΈ μ μλ₯Ό 250μ μ΄μ λ°μ μ¬λμ λͺ¨λ λͺ λͺ μΈκ°?
- μ½λ©ν μ€νΈ μ μλ₯Ό 150μ μ΄μ λ°μ μ¬λμ λͺ¨λ λͺ λͺ μΈκ°?
μ¦, κ°λ°νμμ κΆκΈν΄νλ λ΄μ©μ λ€μκ³Ό κ°μ ννλ₯Ό κ°μ΅λλ€.
* [쑰건]μ λ§μ‘±νλ μ¬λ μ€ μ½λ©ν μ€νΈ μ μλ₯Ό Xμ μ΄μ λ°μ μ¬λμ λͺ¨λ λͺ λͺ μΈκ°?
[λ¬Έμ ]
μ§μμκ° μ§μμμ μ
λ ₯ν 4κ°μ§μ μ 보μ νλν μ½λ©ν
μ€νΈ μ μλ₯Ό νλμ λ¬Έμμ΄λ‘ ꡬμ±ν κ°μ λ°°μ΄ info, κ°λ°νμ΄ κΆκΈν΄νλ λ¬Έμμ‘°κ±΄μ΄ λ¬Έμμ΄ ννλ‘ λ΄κΈ΄ λ°°μ΄ queryκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ,
κ° λ¬Έμ쑰건μ ν΄λΉνλ μ¬λλ€μ μ«μλ₯Ό μμλλ‘ λ°°μ΄μ λ΄μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ.
νμ΄
Setμ λ§λ€μ΄ intersectionμ νλ λ°©λ², λ¨μν λΈλ£¨νΈν¬μ€λ‘ νΈλ λ°©λ²μ λͺ¨λ μλν΄λ³΄μλλ° μ νλλ ν΅κ³Όνμ§λ§ ν¨μ¨μ±κ²μ¬λ₯Ό ν΅κ³Όν μ μμμ΅λλ€. μκ°λ³΅μ‘λλ₯Ό μ€μ΄λ €λ©΄ λ κ°μ§ λΆλΆμ μ κ²½μ¨μΌ ν©λλ€. 첫 λ²μ§Έλ 쿼리μ "-"κ° μμ λμ νμμκ°μ μ€μ΄λ κ²μ΄κ³ , λλ²μ§Έλ μ£Όμ΄μ§ μ μ μ΄μμ μ μλ₯Ό κ°μ§ λ μ½λλ€μ μ°Ύλ μκ°μ μ€μ΄λ κ²μ λλ€.
νμμκ°μ μ€μ΄κΈ° μν΄μλ μ£Όμ΄μ§ μ λ ₯ μ€ μ μλ₯Ό μ μΈν 쑰건λ€κ³Ό "-" μΌλ‘ λ§λ€ μ μλ μ‘°ν©μ 미리 λ§λ€μ΄ λμ λλ¦¬λ‘ λ§λλ κ²μ΄ κ°μ₯ ν¨κ³Όμ μ λλ€. μλ₯Ό λ€μ΄, "python and frontend and senior and chicken 200" κ° μ£Όμ΄μ‘λ€λ©΄ λ€μκ³Ό κ°μ λμ λ리 μμλ₯Ό λ§λ€ μ μμ΅λλ€.
"pythonfrontendseniorchicken" : 200
"-frontendseniorchicken" : 200
"--seniorchicken" : 200
"---chicken" : 200
"----" : 200
.
.
.
"pythonfrontendsenior-" : 200
κ° μμΉμ μ£Όμ΄μ§ μ 보 νΉμ "-" λ₯Ό μ¬μ©ν μ μκΈ° λλ¬Έμ 2^4 λ‘ μ΄ 16κ°μ λμ λ리λ₯Ό μ±μν μ μμ΅λλ€. κ°μ λ°©μμΌλ‘ λͺ¨λ infoμ λν΄ ν€λ₯Ό λ§λ€κ³ , μ΄λ―Έ μ‘΄μ¬νλ ν€λΌλ©΄ μ μλ₯Ό λ°°μ΄λ‘ μΆκ°ν΄μ£Όλ©΄λ©λλ€. μ΄μ μ 체 λμ λ리 νμν νμμμ΄ queryλ‘ keyλ₯Ό λ§λ€μ΄ 곧λ°λ‘ μ μλ₯Ό μ»μ μ μμ΅λλ€.
ν€λ₯Ό μ λ ₯ν΄ μ»μ μ μλ€μμ μΏΌλ¦¬λ‘ μ£Όμ΄μ§ μ μ μ΄μμ μ μλ€μ 골λΌλ΄κΈ° μν΄μλ μμ νμμΌλ‘λ ν¨μ¨μ±μ ν΅κ³Όν μ μμ΅λλ€. λ°λΌμ μ μλ€μ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νκ³ , μ΄λΆ νμμΌλ‘ λ°μ΄λλ₯Ό μ°Ύμ μΈλ±μ€λ₯Ό κ°μλ‘ λ³νν΄μ μ¬μ©νλ©΄ O(NLogN)μ μκ°λ³΅μ‘λλ‘ μ μλ€μ κ°μλ₯Ό μμλΌ μ μμ΅λλ€.
μ½λ