728x90
[๋ฌธ์ ๋งํฌ] ๐
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
ํ์ด ๋ฐฉ๋ฒ
- ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ํ ์ค์ฉ ์ํํ๋ฉฐ, arr1๊ณผ arr2์์ ๋์ผํ ์์น์ ์๋ ์ซ์ i์ j๋ฅผ ํจ๊ป ๋ค๋ฃฌ๋ค.
- i์ j๋ฅผ ๊ฐ๊ฐ n์๋ฆฌ ์ด์ง์ ๋ฌธ์์ด๋ก ๋ณํํ๋ค. ์ฌ๊ธฐ์ i๋ฅผ ์ด์ง์๋ก ๋ฐ๊พผ ํ, n์๋ฆฌ ํ์์ผ๋ก ๋ง์ถ๊ธฐ ์ํด 0์ ์์ ์ถ๊ฐํด ์ค๋ค.
- ๋ณํํ ๋ ์ด์ง์ ๋ฌธ์์ด์ ํ ์๋ฆฌ์ฉ ๋น๊ต
- ๊ฐ์ ์์น์ ์๋ ๋ ๋นํธ ๊ฐ์ด ๋ ์ค ํ๋๋ผ๋ 1์ด๋ฉด ํด๋น ์์น๋ฅผ #์ผ๋ก,
- ๋ ๋ค 0์ด๋ฉด ๊ณต๋ฐฑ์ผ๋ก ๋ฐ๊พธ์ด bin_str์ ์ถ๊ฐ
- bin_str์ด ์์ฑ๋๋ฉด ํ ์ค์ ์ง๋๊ฐ ์์ฑ๋ ๊ฒ์ด๋ฏ๋ก, ์ด๋ฅผ answer์ ์ถ๊ฐ
- ๋ชจ๋ ์ค์ ๋ํด ๋ฐ๋ณตํ ํ answer๋ฅผ ๋ฐํํ์ฌ ์ ์ฒด ์ง๋๋ฅผ ์์ฑ
์ด์ง์ ๋ณํ ํ, n ์๋ฆฌ ํ์์ ๋ง์ถ๋ ๋ฐฉ๋ฒ
format(i, f'0{n}b')
- i ๋ ๋ฐฐ์ด์์ ๊บผ๋ธ ์ ์์ด๋ค.
- f-string์ ํตํด i ๋ฅผ 2์ง์๋ก ๋ณํํ๋๋ฐ, {n}์ ์ฝ์ ํด n ์๋ฆฌ ํ์์ ๋ง์ถ๋ค.
- b๋ 2์ง์๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด๋ค.
Solution
def solution(n, arr1, arr2):
answer = []
# ๋ฐฐ์ด 2์ง์๋ก ๋ณํ, ํ ์ค ์ฉ
for i, j in zip(arr1, arr2):
bin_str = ''
for first, second in zip(format(i, f'0{n}b'), format(j, f'0{n}b')):
for f, s in zip(first, second):
if f == '1' or s == '1':
bin_str += '#'
else:
bin_str += ' '
answer.append(bin_str)
return answer
๊ฐ์ ํ ์
์ด ์ฝ๋๋ ์ฃผ์ด์ง ๋ ๋ฐฐ์ด arr1๊ณผ arr2๋ฅผ ๊ฐ๊ฐ ์ด์ง์๋ก ๋ณํํ์ฌ, ๋ ๊ฐ์ ๋นํธ OR ์ฐ์ฐ์ผ๋ก ํฉ์ณ๊ฐ๋ฉฐ ๋ฒฝ๊ณผ ๊ณต๋ฐฑ์ ํํํ๋ค. ๋ค๋ง ์ฝ๋ ๋ด ๋ถํ์ํ ์ค์ฒฉ ๋ฐ๋ณต๋ฌธ์ ์ค์ผ ์ ์๋ค. ๋ํ, format()์ ์ฌ์ฉํ 2์ง์ ๋ณํ๊ณผ ๋นํธ ์ฐ์ฐ์ ๊ฒฐํฉํ์ฌ ๋ ๊ฐ๋จํ๊ฒ ์์ฑํ ์ ์๋ค.
๊ฐ์ ๋ ์ฝ๋
def solution(n, arr1, arr2):
answer = []
for i, j in zip(arr1, arr2):
# ๋ ๊ฐ์ OR ์ฐ์ฐํ ํ n์๋ฆฌ 2์ง์๋ก ๋ณํํ์ฌ #๊ณผ ๊ณต๋ฐฑ์ผ๋ก ๋งคํ
bin_str = format(i | j, f'0{n}b').replace('1', '#').replace('0', ' ')
answer.append(bin_str)
return answer
728x90
'๐งฉ Algorithm > [Programmers] Level 1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Programmers] L1. ์นด๋ ๋ญ์น (Python) (2) | 2024.11.16 |
|---|---|
| [Programmers] L1. ์ถ์ต ์ ์ (Python) (1) | 2024.11.16 |
| [Programmers] L1. ํธ๋ ํ์ดํธ ๋ํ (Python) (0) | 2024.11.11 |
| [Programmers] L1. ์ฝ๋ผ ๋ฌธ์ (Python) (0) | 2024.11.07 |
| [Programmers] L1. ๋ชจ์๊ณ ์ฌ (์์ ํ์/Python) (0) | 2024.11.06 |