์ฝ๋ฉ ํ ์คํธ ์ฐ์ต - 2018 KAKAO BLIND RECRUITMENT
<[1์ฐจ] ๋น๋ฐ์ง๋>
๋ฌธ์ ์ค๋ช
๋ค์ค๋ ํ์ ํ๋ก๋๊ฐ ๋น์๊ธ์ ์จ๊ฒจ๋๋ ์ฅ์๋ฅผ ์๋ ค์ค ๋น๋ฐ์ง๋๋ฅผ ์์ ๋ฃ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๋น๋ฐ์ง๋๋ ์ซ์๋ก ์ํธํ๋์ด ์์ด ์์น๋ฅผ ํ์ธํ๊ธฐ ์ํด์๋ ์ํธ๋ฅผ ํด๋ ํด์ผ ํ๋ค. ๋คํํ ์ง๋ ์ํธ๋ฅผ ํด๋ ํ ๋ฐฉ๋ฒ์ ์ ์ด๋์ ๋ฉ๋ชจ๋ ํจ๊ป ๋ฐ๊ฒฌํ๋ค
์ง๋๋ ํ ๋ณ์ ๊ธธ์ด๊ฐ n์ธ ์ ์ฌ๊ฐํ ๋ฐฐ์ด ํํ๋ก, ๊ฐ ์นธ์ ๊ณต๋ฐฑ(" ") ๋๋ ๋ฒฝ("#") ๋ ์ข ๋ฅ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
์ ์ฒด ์ง๋๋ ๋ ์ฅ์ ์ง๋๋ฅผ ๊ฒน์ณ์ ์ป์ ์ ์๋ค. ๊ฐ๊ฐ ์ง๋ 1๊ณผ ์ง๋ 2๋ผ๊ณ ํ์. ์ง๋ 1 ๋๋ ์ง๋ 2 ์ค ์ด๋ ํ๋๋ผ๋ ๋ฒฝ์ธ ๋ถ๋ถ์ ์ ์ฒด ์ง๋์์๋ ๋ฒฝ์ด๋ค. ์ง๋ 1๊ณผ ์ง๋ 2์์ ๋ชจ๋ ๊ณต๋ฐฑ์ธ ๋ถ๋ถ์ ์ ์ฒด ์ง๋์์๋ ๊ณต๋ฐฑ์ด๋ค.
์ง๋ 1๊ณผ ์ง๋ 2๋ ๊ฐ๊ฐ ์ ์ ๋ฐฐ์ด๋ก ์ํธํ๋์ด ์๋ค.
์ํธํ๋ ๋ฐฐ์ด์ ์ง๋์ ๊ฐ ๊ฐ๋ก์ค์์ ๋ฒฝ ๋ถ๋ถ์ 1, ๊ณต๋ฐฑ ๋ถ๋ถ์ 0์ผ๋ก ๋ถํธํํ์ ๋ ์ป์ด์ง๋ ์ด์ง์์ ํด๋นํ๋ ๊ฐ์ ๋ฐฐ์ด์ด๋ค.
๋ค์ค๊ฐ ํ๋ก๋์ ๋น์๊ธ์ ์์ ๋ฃ์ ์ ์๋๋ก, ๋น๋ฐ์ง๋์ ์ํธ๋ฅผ ํด๋ ํ๋ ์์ ์ ๋์์ค ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
์ ๋ ฅ ํ์
์ ๋ ฅ์ผ๋ก ์ง๋์ ํ ๋ณ ํฌ๊ธฐ n๊ณผ 2๊ฐ์ ์ ์ ๋ฐฐ์ด arr1, arr2๊ฐ ๋ค์ด์จ๋ค.
- 1 โฆ n โฆ 16
- arr1, arr2๋ ๊ธธ์ด n์ธ ์ ์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๋ค.
- ์ ์ ๋ฐฐ์ด์ ๊ฐ ์์ x๋ฅผ ์ด์ง์๋ก ๋ณํํ์ ๋์ ๊ธธ์ด๋ n ์ดํ์ด๋ค. ์ฆ, 0 โฆ x โฆ 2n - 1์ ๋ง์กฑํ๋ค.
์ถ๋ ฅ ํ์
์๋์ ๋น๋ฐ์ง๋๋ฅผ ํด๋ ํ์ฌ '#', ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด ๋ฐฐ์ด๋ก ์ถ๋ ฅํ๋ผ.
๋ฌธ์ ํ์ด
- my solution
def solution(n, arr1, arr2):
answer = []
for i in range(n):
result=""
temp=(bin(arr1[i] | arr2[i])) #2์ง์ and
if(len(temp)<n+2): #๊ธธ์ด ๋ถ์กฑํ ์ -> 0 ์ฑ์ฐ๊ธฐ
tempzero=""
for j in range(n+2-len(temp)):
tempzero+="0"
temp=temp[0:2]+tempzero+temp[2:]
for j in range(2,len(temp)): # #๊ณผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ์ฑ
if(temp[j]=="1"):
result+="#"
else:
result+=" "
answer.append(result)
return answer
1) ์ญ์ง์๋ฅผ ํ์ด์ฌ์์ ์ ๊ณตํ๋ ๋ด์ฅ ํจ์ bin์ ์ด์ฉํ์ฌ ์ด์ง์๋ก ๋ณ๊ฒฝํ ํ and ์ฐ์ฐ
2) ๋งจ ์ 0์ด ์ฌ๋ผ์ง๋ ๊ฒ ํด๊ฒฐํ๊ธฐ ์ํด ๊ธธ์ด ํ์ธํ์ฌ ๋ถ์กฑํ ๊ธธ์ด์ 0 ์ถ๊ฐ
3) ๋ฐ๋ณต๋ฌธ ์ฌ์ฉ -> 1์ด๋ฉด #์ถ๊ฐ, 0์ด๋ฉด ๊ณต๋ฐฑ ์ถ๊ฐ
๋ฌธ์ ๋ ๊ธธ์์ง๋ง ํ์ด์ฌ์ ๋ด์ฅ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ ์ ์์๋ค!
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges