SW Expert Academy
SW νλ‘κ·Έλλ° μλ κ°νμ λμμ΄ λλ λ€μν νμ΅ μ»¨ν μΈ λ₯Ό νμΈνμΈμ!
swexpertacademy.com
μ€λͺ
NxN ν¬κΈ°μ λ¨μ΄ νΌμ¦μμ νΉμ κΈΈμ΄ Kλ₯Ό κ°λ λ¨μ΄κ° λ€μ΄κ° μ μλ μ리μ μλ₯Ό μΆλ ₯νλ€.
κ²μμμΌλ‘ μΉ ν΄μ§ κ³³μ λ¨μ΄κ° λ€μ΄κ° μ μλ€. ν°μμΌλ‘ μΉ ν΄μ§ κ³³μλ§ λ£μ μ μλ€. κ²μμ = 0, ν°μ = 1
κ°λ‘ νΉμ μΈλ‘λ‘ λ¨μ΄λ₯Ό λμ μ μλ€. λ¨μ΄μ κΈΈμ΄μ ν½μ
μλ κ°μμΌ νλ€.
νμ΄
κ°λ‘μ μΈλ‘λ₯Ό λλ μ νμ΄
1. NxN νΌμ¦μ μ΄μ€ 리μ€νΈλ‘ μ λ ₯λ°λλ€.
2. λ¨Όμ κ°λ‘λ₯Ό ν μ€ μ© νμνλ€.
- νμ μ€μ ν½μ μ΄ 1μ΄λ©΄, μΉ΄μ΄νΈ κ°μ μ¦κ°μν¨λ€.
- 0μ λ§λλ©΄, μΉ΄μ΄νΈ κ°κ³Ό λ¨μ΄ μλ¦Ώμλ λ§λμ§ νμΈνλ€.
- μλ¦Ώμμ λ§μΌλ©΄ κ²°κ³Όκ° μ¦κ° ν μΉ΄μ΄νΈκ° μ΄κΈ°ν, λ§μ§ μμΌλ©΄ μΉ΄μ΄νΈκ°λ§ μ΄κΈ°ννλ€. λ¨μ΄ μλ¦Ώμμ λ§κ² μ΄μ΄μ ΈμΌ νκΈ° λλ¬Έμ μ΄κΈ°νκ° νμνλ€.
- κ°λ‘ ν μ€μ νμν νμ, μΉ΄μ΄νΈκ°κ³Ό λ¨μ΄ μλ¦Ώμλ λ§λμ§ νμΈνλ€. 5x5 νΌμ¦κ³Ό λ¨μ΄ κΈΈμ΄κ° 3μ΄λΌκ³ ν λ, 첫째 μ€μ΄ 0 0 1 1 1μ΄λΌκ³ ν΄λ³΄μ. μ κ³Όμ μ κ±°μΉλ©΄, 0μ λ§λ¬μ λ μλ¦Ώμλ λ§μ§ μμΌλ―λ‘ μΉ΄μ΄νΈ κ°μ κ³μ 0μ΄μλ€κ°, 1μ λ§λ¬μ λ μΉ΄μ΄νΈ κ°μ΄ μ¦κ°νλ€. ν μ€μ΄ λ€ λλ¬μ μμ κΉμ§λ μΉ΄μ΄νΈ κ°μ μ¦κ°νλ€. ν μ€μ΄ λ€ λλκ³ λ€μ μ€ νμνκΈ° μ μ, μ΄ ν μ€μ νλ¨νκΈ° μν΄ νμν μ½λμ΄λ€.
3. μΈλ‘λ₯Ό ν μ€ μ© νμνλ€.
- μμ κ°λ‘λ₯Ό νμν λμ λκ°μλ° ν κ°μ§ λ€λ₯Έ μ μ, μΈλ±μ€μ μμμ΄λ€. iμ j μμΉλ₯Ό λ°κΏμ€λ€.
4. νμμ΄ λͺ¨λ λλ¬μΌλ©΄ κ²°κ³Όκ°μ μΆλ ₯νλ€.
Solution
t = int(input())
for tc in range(1, t+1):
n, k = map(int, input().split())
puzzle = [list(map(int, input().split())) for _ in range(n)]
ans = 0 #κ²°κ³Όκ°
for i in range(n): #κ°λ‘ νμΈ
cnt = 0
for j in range(n):
if puzzle[i][j] == 1:
cnt += 1
else: #0μΌ λ, λ§μ½ 7x7 νΌμ¦μμ λ¨μ΄κ° 3μλ¦¬μΌ λ κ°λ‘μμ 2κ°μ§κ° λμ¬ μ μκΈ° λλ¬Έ
if cnt == k: #μΉ΄μ΄νΈκ°κ³Ό λ¨μ΄ μλ¦Ώμλ λ§μΌλ©΄
ans += 1 #κ²°κ³Όκ°μ 1μ λνκ³
cnt = 0 #μΉ΄μ΄νΈκ° μ΄κΈ°ν
else: #μΉ΄μ΄νΈκ°κ³Ό λ¨μ΄ μλ¦Ώμλ λ§μ§ μμΌλ©΄
cnt = 0 #κ²°κ³Όκ°μ 무μνκ³ , μΉ΄μ΄νΈκ° μ΄κΈ°ν
if cnt == k:
ans += 1
for i in range(n): #μΈλ‘ νμΈ
cnt = 0
for j in range(n):
if puzzle[j][i] == 1: #μΈλ±μ€ i, j μ£Όμ
cnt += 1
else:
if cnt == k:
ans += 1
cnt = 0
else:
cnt = 0
if cnt == k:
ans += 1
print('#'+str(tc), ans)
TIL
β list(zip(*a)) : μ μΉνλ ¬μ μμ±νλ€.
# μ μΉνλ ¬ μμ±
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = list(zip(*a))
b
>>> [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
μ μΉνλ ¬ μ¬μ©
t = int(input())
def calc(puzzle):
ans = 0
for i in range(n):
cnt = 0
for j in range(n):
if puzzle[i][j] == 1:
cnt += 1
else:
if cnt == k:
ans += 1
cnt = 0
else:
cnt = 0
if cnt == k:
ans += 1
return ans
for tc in range(1, t+1):
n, k = map(int, input().split())
puzzle = [list(map(int, input().split())) for _ in range(n)]
ans = 0
ans += calc(puzzle) #κ°λ‘
ans += calc(list(zip(*puzzle))) #μΈλ‘
print('#'+str(tc), ans)
μ μΉνλ ¬μ μ¬μ©νμ λ, λ κ°λ¨νκ² ν μ μλ€.
π©π» νκ³
κ·Έλν νμ μκ³ λ¦¬μ¦μ μ¨μΌ νλ νμ§λ§ κ΅³μ΄ κ·Έλ΄ νμλ μλ λ¬Έμ μλ€. νμ¬ μμΉμμ μ£Όλ³μ νμν νμκ° μκΈ° λλ¬Έμ΄λ€. μΉ΄μ΄νΈλ₯Ό ν΄μ£Όλ κ²μ΄ ν΅μ¬μ΄λΌκ³ μκ°νλ€. 쑰건μ μκ°νλλΌκ³ μκ°μ μ€λ μΌλ€.
1μ°¨ μ μΆμ μ€ν¨νλλ° input νμΌ μ€ 6κ°λ§ λ§μλ€κ³ νλ€. μ²μμ κ°λ‘ νμμ else λΆλΆμ μ΄λ κ² μμ±νλλ° μμΈν 보λ jμ iλ₯Ό λ°λλ‘ μ μ΄μ νλ Έλ κ²μ΄λ€.. λ무 μμ½λ€. κ·Έλλ νλ¦° νμ΄λ μλλΌλ μκ°μ μμ¬μ΄ λλ€. μ¬μ§μ΄ μμ λ κ°μ§ νμ΄λ³΄λ€ μ΄ μ½λλ‘ νμ λκ° μλμ λ©λͺ¨λ¦¬ μμμ μ‘°κΈ λ ν¨μ¨μ μ΄λ€.
elif puzzle[i][j] == 0 and cnt == k: #0μ λ§λ¬λλ° μΉ΄μ΄νΈκ°κ³Ό λ¨μ΄ μλ¦Ώμλ κ°λ€λ©΄
ans += 1 #κ²°κ³Όκ° μ¦κ°
cnt = 0 #μΉ΄μ΄νΈκ° μ΄κΈ°ν
elif puzzle[j][i] == 0: #0μ λ§λκ³ , μΉ΄μ΄νΈκ°κ³Ό λ¨μ΄ μλ¦Ώμλ λ§μ§ μμΌλ©΄
cnt = 0 #κ·Έλ₯ μΉ΄μ΄νΈκ°λ§ μ΄κΈ°ν
κ·Έλλ λ λ€μν λ°©λ²λ μκ°ν μ μλ κΈ°νκ° μμλ€! λ€λ₯Έ νμ΄λ₯Ό 보λ λμΆ© λ€ λΉμ·νκ² νΌ κ² κ°μμ λ€νμ΄λ€. κ·Έλ¦¬κ³ μ μΉνλ ¬μ μ¬μ©ν΄μ λ°λ³΅μ μΈ μ½λλ₯Ό λ§λ€μ§ μμλ λλ€λ κ²λ μκ² λλ€.
'π§© Algorithm > SWEA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [SWEA] 1986. μ§κ·Έμ¬κ·Έ μ«μ (Python/D2) (1) | 2023.11.11 |
|---|---|
| [SWEA] 1989. μ΄μ¬μμ νλ¬Έ κ²μ¬ (Python/D2) (0) | 2023.11.11 |
| [SWEA] 1946. κ°λ¨ν μμΆ νκΈ° (Python/D2) (0) | 2023.11.09 |
| [SWEA] 1926. κ°λ¨ν 369κ²μ (Python/D2) (1) | 2023.11.07 |
| [SWEA] 1970. μ¬μ΄ κ±°μ€λ¦λ (Python/D2) (2) | 2023.11.06 |