λ¬Έμ μ€λͺ
κ°λ°ν λ΄μμ μ΄λ²€νΈ κ°λ°μ λ΄λΉνκ³ μλ "무μ§"λ μ΅κ·Ό μ§νλ μΉ΄μΉ΄μ€μ΄λͺ¨ν°μ½ μ΄λ²€νΈμ λΉμ μμ μΈ λ°©λ²μΌλ‘ λΉμ²¨μ μλν μλͺ¨μλ€μ λ°κ²¬νμμ΅λλ€.
μ΄λ° μλͺ¨μλ€μ λ°λ‘ λͺ¨μ λΆλ μ¬μ©μλΌλ μ΄λ¦μΌλ‘ λͺ©λ‘μ λ§λ€μ΄μ λΉμ²¨ μ²λ¦¬ μ μ μΈνλλ‘ μ΄λ²€νΈ λΉμ²¨μ λ΄λΉμμΈ "νλ‘λ" μκ² μ λ¬νλ €κ³ ν©λλ€. μ΄ λ κ°μΈμ 보 보νΈμ μν΄ μ¬μ©μ μμ΄λ μ€ μΌλΆ λ¬Έμλ₯Ό '*' λ¬Έμλ‘ κ°λ €μ μ λ¬νμ΅λλ€.
κ°λ¦¬κ³ μ νλ λ¬Έμ νλμ '*' λ¬Έμ νλλ₯Ό μ¬μ©νμκ³ μμ΄λ λΉ μ΅μ νλ μ΄μμ '*' λ¬Έμλ₯Ό μ¬μ©νμμ΅λλ€.
"무μ§"μ "νλ‘λ"λ λΆλ μ¬μ©μ λͺ©λ‘μ 맀νλ μλͺ¨μ μμ΄λλ₯Ό μ μ¬ μμ΄λ λΌκ³ λΆλ₯΄κΈ°λ‘ νμμ΅λλ€.
μλ₯Ό λ€μ΄, μ΄λ²€νΈμ μλͺ¨ν μ 체 μ¬μ©μ μμ΄λ λͺ©λ‘μ΄ λ€μκ³Ό κ°λ€λ©΄
μλͺ¨μ μμ΄λ
frodo |
fradi |
crodo |
abc123 |
frodoc |
λ€μκ³Ό κ°μ΄ λΆλ μ¬μ©μ μμ΄λ λͺ©λ‘μ΄ μ λ¬λ κ²½μ°,
fr*d* |
abc1** |
λΆλ μ¬μ©μμ 맀νλμ΄ λΉμ²¨μμ μ μΈλμ΄μΌ μΌ ν μ μ¬ μμ΄λ λͺ©λ‘μ λ€μκ³Ό κ°μ΄ λ κ°μ§ κ²½μ°κ° μμ μ μμ΅λλ€.
![](https://blog.kakaocdn.net/dn/bx4GWn/btrNcWbaagc/QGZGOk8poYLIuYX5spRfgk/img.png)
μ΄λ²€νΈ μλͺ¨μ μμ΄λ λͺ©λ‘μ΄ λ΄κΈ΄ λ°°μ΄ user_idμ λΆλ μ¬μ©μ μμ΄λ λͺ©λ‘μ΄ λ΄κΈ΄ λ°°μ΄ banned_idκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, λΉμ²¨μμ μ μΈλμ΄μΌ ν μ μ¬ μμ΄λ λͺ©λ‘μ λͺκ°μ§ κ²½μ°μ μκ° κ°λ₯ν μ§ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
[μ νμ¬ν]
- user_id λ°°μ΄μ ν¬κΈ°λ 1 μ΄μ 8 μ΄νμ λλ€.
- user_id λ°°μ΄ κ° μμλ€μ κ°μ κΈΈμ΄κ° 1 μ΄μ 8 μ΄νμΈ λ¬Έμμ΄μ
λλ€.
- μλͺ¨ν μ¬μ©μ μμ΄λλ€μ μλ‘ μ€λ³΅λμ§ μμ΅λλ€.
- μλͺ¨ν μ¬μ©μ μμ΄λλ μνλ²³ μλ¬Έμμ μ«μλ‘λ§μΌλ‘ ꡬμ±λμ΄ μμ΅λλ€.
- banned_id λ°°μ΄μ ν¬κΈ°λ 1 μ΄μ user_id λ°°μ΄μ ν¬κΈ° μ΄νμ λλ€.
- banned_id λ°°μ΄ κ° μμλ€μ κ°μ κΈΈμ΄κ° 1 μ΄μ 8 μ΄νμΈ λ¬Έμμ΄μ
λλ€.
- λΆλ μ¬μ©μ μμ΄λλ μνλ²³ μλ¬Έμμ μ«μ, κ°λ¦¬κΈ° μν λ¬Έμ '*' λ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
- λΆλ μ¬μ©μ μμ΄λλ '*' λ¬Έμλ₯Ό νλ μ΄μ ν¬ν¨νκ³ μμ΅λλ€.
- λΆλ μ¬μ©μ μμ΄λ νλλ μλͺ¨μ μμ΄λ μ€ νλμ ν΄λΉνκ³ κ°μ μλͺ¨μ μμ΄λκ° μ€λ³΅ν΄μ μ μ¬ μμ΄λ λͺ©λ‘μ λ€μ΄κ°λ κ²½μ°λ μμ΅λλ€.
- μ μ¬ μμ΄λ λͺ©λ‘λ€μ ꡬνμ λ μμ΄λλ€μ΄ λμ΄λ μμμ κ΄κ³μμ΄ μμ΄λ λͺ©λ‘μ λ΄μ©μ΄ λμΌνλ€λ©΄ κ°μ κ²μΌλ‘ μ²λ¦¬νμ¬ νλλ‘ μΈλ©΄ λ©λλ€.
[μ μΆλ ₯ μ]
![](https://blog.kakaocdn.net/dn/cXEkVb/btrNcYUlVvn/y1BFh1kqQ28i8KVCbZqk70/img.png)
λ¬Έμ μ€λͺ κ³Ό κ°μ΅λλ€.
μ μΆλ ₯ μ #2
λ€μκ³Ό κ°μ΄ λ κ°μ§ κ²½μ°κ° μμ΅λλ€.
![](https://blog.kakaocdn.net/dn/bibcNM/btrNbXa6Pog/F0XDiUBWIpiWGlDCcvCjPk/img.png)
λ€μκ³Ό κ°μ΄ μΈ κ°μ§ κ²½μ°κ° μμ΅λλ€.
![](https://blog.kakaocdn.net/dn/cOZrgG/btrM8lKPZjy/SRa99lWa0jP0Hgwf3TFh0K/img.png)
νμ΄ μ½λ
from itertools import product
def solution(user_id, banned_id):
answer = 0
banned_candidate = []
for ban in banned_id:
temp = []
for user in user_id:
if len(user) == len(ban):
flag = True
for i in range(len(ban)):
if ban[i] != user[i] and ban[i] != '*':
flag = False
break
if flag:
temp.append(user)
banned_candidate.append(temp)
result = []
for p in product(*banned_candidate):
if len(set(p)) == len(banned_id):
flag = True
for s in result:
if len(s - set(p)) == 0:
# λκ°μκ² μ΄λ―Έ μλ€.
flag = False
break
if flag:
result.append(set(p))
answer = len(result)
return answer
μ§ν©κ³Ό product λͺ¨λμ μ¬μ©ν΄ νμ΄νλ€.
forλ¬Έμ ν¬κ² 2κ°μ§λ₯Ό λ³Ό μ μλλ°, μμ forλ¬Έμ κ° banned_idμμ μ μ¬ μμ΄λκ° λ μ μλ ν보λ₯Ό μ»μ΄μ€λ λ°λ³΅λ¬Έμ΄κ³
μλμ forλ¬Έμ κ° ν보 μ€μμ νλμ© λ½μ λ€μμ, μ€λ³΅μ΄ μλμ§ μ²΄ν¬νλ λ‘μ§μ΄ λ΄κ²¨μλ€.
μμ forλ¬Έμ import reλ₯Ό ν΅ν΄ μ κ·ννμμΌλ‘ νμ΄ν΄λ 무방νλ€.
μλμ κ²½μ° μ£Όμν΄μΌ ν μ μ λ€μκ³Ό κ°λ€.
["A", "B"] ["B"] μ΄ λ κ°μ λ°°μ΄μ λν΄ productλ₯Ό λ릴 κ²½μ°, ("A", "B")μ ("B", "B")κ° λμ¨λ€. ν μμ΄λκ° μ μ¬λ₯Ό λΉνλ©΄, λ€μ λ°λ³΅λμ΄ μ μ¬λ₯Ό λΉν μ μμΌλ―λ‘, μ§ν©μΌλ‘ μ²λ¦¬ν΄ μ€λ³΅μ μ κ±°νλ€.
μ΄ν κΈΈμ΄λ₯Ό λΉκ΅νλ©΄, μ€λ³΅ 체ν¬κ° κ°λ₯νλ€.
ν λ² λ μ€λ³΅μ²΄ν¬λ₯Ό ν΄μΌ νλλ°, λͺ¨λ λ€λ₯Έ μμλ‘ μ§ν©μ λ§λ€μλλ°, μ΄ μ 체 μ§ν©μ΄ μ΄λ―Έ μΉ΄μ΄ν λ κ²½μ°λ₯Ό νμΈν΄μΌ νλ€.
μ΄λ₯Ό μν΄μ len(s-set(p))μΈ, μ°¨μ§ν©μ κΈΈμ΄λ₯Ό ν΅ν΄ μ΄λ₯Ό νμΈμ΄ κ°λ₯νλ€.
λ€μ κΉλνμ§ μμ§λ§, 무리 μμ΄ ν΅κ³Όλλ μ½λμ΄λ€.
κΈ°κ»ν΄μΌ λͺ¨λ nμ λν΄ 8 μ΄νμ΄κΈ° λλ¬Έμ μ΄λ° λ°λ³΅μ λ‘μΉ ν΄λ μΆ©λΆν λμκ°λ€.
'π μ½λ©ν μ€νΈ λλΉ : PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] λ§€λ΄ λ¦¬λ΄μΌ (level2, python) (0) | 2022.10.10 |
---|---|
[νλ‘κ·Έλλ¨Έμ€] 보μ μΌν (level3, python) (0) | 2022.10.10 |
[νλ‘κ·Έλλ¨Έμ€] μΌκ° λ¬ν½μ΄ (level2, python) (0) | 2022.09.26 |
[νλ‘κ·Έλλ¨Έμ€] κΈ°μ§κ΅ μ€μΉ (level3, python) (1) | 2022.09.25 |
[νλ‘κ·Έλλ¨Έμ€] 124 λλΌμ μ«μ (level2, python) (1) | 2022.09.25 |