๐Ÿงฉ Algorithm/[Programmers] Level 1

[Programmers] L1. [1์ฐจ] ๋น„๋ฐ€์ง€๋„ (Python)

devCloud 2024. 11. 12. 14:13
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