728x90
๋ฐ์ํ
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/17681
๋ฌธ์ ํ์ด
1. ๋ฌธ์ ๊ฐ์
- ์ง๋1 ๊ณผ ์ง๋2 ๋ ๊ฐ๊ฐ ์ ์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๋๋ค.
- ์ด ๋ฐฐ์ด์ ์ด์ง์๋ก ๋ณํํ์ฌ ํด๋ ํ๊ณ , ์ด๋ฅผ ํตํด ์ต์ข ์ง๋๋ฅผ ์์ฑํฉ๋๋ค.
- ์ง๋์ ๊ฐ ์นธ์ ๋ฒฝ('#') ๋๋ ๊ณต๋ฐฑ(' ') ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค.
- ๋ ์ง๋ ์ค ํ๋๋ผ๋ ๋ฒฝ(1)์ธ ๊ฒฝ์ฐ ํด๋น ์นธ์ ๋ฒฝ(#)์ด ๋๊ณ , ๋ ๋ค ๊ณต๋ฐฑ(0)์ด๋ฉด ๊ณต๋ฐฑ( )์ด ๋ฉ๋๋ค.
2. ์ฝ๋ํด์ค
def makeNumber(arr, n):
makeArr = []
for i in arr:
temp = i
tempArr = [0]*n
for j in range(n):
if temp % 2 == 1:
tempArr[j] = 1
temp //= 2
tempArr.reverse()
makeArr.append(tempArr)
return makeArr
- makeNumber ํจ์๋ ์ฃผ์ด์ง ๋ฐฐ์ด์ 2์ง์๋ก ๋ณํํ์ฌ n๊ฐ์ ๊ธธ์ด๋ฅผ ๊ฐ์ง ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด์ค๋๋ค.
- temp๋ arr ๋ฐฐ์ด์ ๊ฐ ์ซ์๋ฅผ ๋ํ๋ ๋๋ค.
- ์ซ์๋ฅผ 2๋ก ๋๋ ๋๋จธ์ง(์ฆ, temp % 2)๋ก ๊ทธ ์ซ์์ ๋ง์ง๋ง ์๋ฆฌ๊ฐ 1์ธ์ง 0์ธ์ง ํ๋จํฉ๋๋ค.
- ๋ง์ง๋ง ์๋ฆฌ๊ฐ 1์ด๋ฉด temparr๋ฐฐ์ด์ ํด๋น ์๋ฆฌ์ 1์ ๋ฃ๊ณ , 0์ด๋ฉด 0์ ๋ฃ์ต๋๋ค.
- 2๋ก ๋๋ ๊ฐ์ ๋ชจ์ ๋ฆฌ์คํธ tempArr์ ์ญ์ (reverse)์ ์์ผ์ผ 2์ง์๊ฐ ๋ฉ๋๋ค.
def solution(n, arr1, arr2):
answer = []
arr11 = makeNumber(arr1, n)
arr22 = makeNumber(arr2, n)
for i in range(n):
res = ''
for j in range(n):
if arr11[i][j] == 1 or arr22[i][j] == 1:
res += '#'
else:
res += ' '
answer.append(res)
return answer
- arr11 = makeNumber(arr1, n)
- arr1 ๋ฐฐ์ด์ 2์ง์๋ก ๋ณํํ ๊ฒฐ๊ณผ๋ฅผ arr11์ ์ ์ฅํฉ๋๋ค.
- arr2๋ ๋์ผํ ๋ฐฉ์์ผ๋ก 2์ง์ ๋ณํ ๊ฐ์ ์ ์ฅํฉ๋๋ค.
- ์ต์ข
์ง๋ ํด๋
- ๋ ๋ณํ๋ ์ง๋๋ฅผ ๋น๊ตํ๋ฉด์, ๊ฐ ์์น์์ ํ๋๋ผ๋ 1์ด ์์ผ๋ฉด ํด๋น ์์น๋ ๋ฒฝ(#), ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ณต๋ฐฑ( )์ผ๋ก ํ์ํฉ๋๋ค.
- ์ด๋ฅผ res ๋ฌธ์์ด์ ์ ์ฅํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ answer ๋ฆฌ์คํธ์ ์ถ๊ฐํฉ๋๋ค.
์ต์ข ์ฝ๋
def makeNumber(arr, n):
makeArr = []
for i in arr:
temp = i
tempArr = [0]*n
for j in range(n):
if temp%2 == 1:
tempArr[j]=1
temp //= 2
tempArr.reverse()
makeArr.append(tempArr)
return makeArr
def solution(n, arr1, arr2):
answer = []
arr11 = makeNumber(arr1, n)
arr22 = makeNumber(arr2, n)
for i in range(n):
res = ''
for j in range(n):
if arr11[i][j] == 1 or arr22[i][j] == 1:
res+='#'
else:
res+=' '
answer.append(res)
return answer
728x90
๋ฐ์ํ