๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [1์ฐจ] ๋น„๋ฐ€์ง€๋„ (Python)

1. ๋ฌธ์ œ ์„ค๋ช…

๋ฌธ์ œ ๋งํฌ

  • ์ž…๋ ฅ :
    • n 5 : ์ •์‚ฌ๊ฐํ˜• ๋ณ€ ๊ธธ์ด
    • arr1 [9, 20, 28, 18, 11] : ์ง€๋„1 ์— ๋“ค์–ด๊ฐ€๋Š” ์ˆซ์ž
    • arr2 [30, 1, 21, 17, 28] : ์ง€๋„2 ์— ๋“ค์–ด๊ฐ€๋Š” ์ˆซ์ž
  • ์ถœ๋ ฅ :
    • ["#####","# # #", "### #", "# ##", "#####"]
    • ์ง€๋„ 1,2๋ฅผ ๊ฐ๊ฐ ์ด์ง„์ˆ˜๋กœ ๋ณ€๊ฒฝ ํ›„, ๋‘˜ ๋‹ค 0์ผ๊ฒฝ์šฐ๋Š” ๊ณต๋ฐฑ, ํ•˜๋‚˜๋ผ๋„ 1์ผ ๊ฒฝ์šฐ๋Š” #์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ถœ๋ ฅ

2. ์ฝ”๋“œ

solution1.py

def solution(n, arr1, arr2):
    temp1 = []
    temp2 = []
    for i in range(n):
        temp1.append(list(format(arr1[i],'b').zfill(n)))
        temp2.append(list(format(arr2[i],'b').zfill(n)))

    #๋‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋น„๊ต
    answer = []
    for tmp1, tmp2 in zip(temp1, temp2):
        s = []
        for t1,t2 in zip(tmp1, tmp2):
            if t1 =='0' and t2=='0':
                s.append(" ")
            else:
                s.append("#")
        answer.append("".join(s))
    return answer

3. ํšŒ๊ณ 

  • ์ด์ง„์ˆ˜๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ณผ์ •์—์„œ bin()ํ•จ์ˆ˜๋ฅผ ์“ฐ๋‹ˆ b๋ผ๋Š” ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค
  • ์ด๋ฅผ ์œ„ํ•ด format(๋ฆฌ์ŠคํŠธ,'b')๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ–ˆ๋‹ค.
  • ์ด์ง„ ์ˆ˜๋กœ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ, 00001์ด ๋˜์–ด์•ผํ•  ๊ฒƒ์ด 1๋กœ ๋˜์–ด์„œ zfill(๋ฌธ์ž์—ด๊ธธ์ด)๋ฅผ ํ†ตํ•ด ์•ž์ชฝ์— 0์„ ์ฑ„์›Œ์ฃผ์—ˆ๋‹ค.
  • zip์„ ์จ์„œ ๋‘ ์ด์ฐจ์› ๋ฆฌ์ŠคํŠธ๋ฅผ ๋™์‹œ์— ์ˆœํšŒํ–ˆ๋Š”๋ฐ, ์ด ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ์—” ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ทธ๋ƒฅ ์จ๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™๋‹ค.