๐Ÿ’ป๊ฐœ๋ฐœ๊ณต๋ถ€/Algorithm

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

Jee-young 2021. 9. 9. 14:51

https://programmers.co.kr/learn/courses/30/lessons/17681?language=python3 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - [1์ฐจ] ๋น„๋ฐ€์ง€๋„

๋น„๋ฐ€์ง€๋„ ๋„ค์˜ค๋Š” ํ‰์†Œ ํ”„๋กœ๋„๊ฐ€ ๋น„์ƒ๊ธˆ์„ ์ˆจ๊ฒจ๋†“๋Š” ์žฅ์†Œ๋ฅผ ์•Œ๋ ค์ค„ ๋น„๋ฐ€์ง€๋„๋ฅผ ์†์— ๋„ฃ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ๋น„๋ฐ€์ง€๋„๋Š” ์ˆซ์ž๋กœ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ์–ด ์œ„์น˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•”ํ˜ธ๋ฅผ ํ•ด๋…ํ•ด์•ผ ํ•œ๋‹ค. ๋‹ค

programmers.co.kr

ํ’€์ด๊ณผ์ • ์š”์•ฝ

๋น„ํŠธ์—ฐ์‚ฐ์ž or์„ ์‚ฌ์šฉํ•œ ์—ฐ์‚ฐ๊ฒฐ๊ณผ๋ฅผ ์ด์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•ด์„œ ์ €์žฅํ•œ๋‹ค. 

์ด์ง„์ˆ˜ ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜์”ฉ ํƒ์ƒ‰ํ•˜๋ฉด์„œ 1์€ #์œผ๋กœ, 0์€ ๊ณต๋ฐฑ์œผ๋กœ ๋ฌธ์ž์—ด ์น˜ํ™˜์„ ํ•ด์ฃผ์—ˆ๋‹ค. 

 

์ „์ฒด ์ฝ”๋“œ

def solution(n, arr1, arr2):
    answer = []
     
    dec_arr = list(zip(arr1, arr2))
    
    bin_arr = []
    for first, second in dec_arr:
        result = first | second
        bin_arr.append(bin(result)[2:].zfill(n))   
    
    for element in bin_arr:
        tmp = element.replace("1", "#").replace("0", " ")
        answer.append(tmp)
    return answer

 

 Line 4: arr1๊ณผ arr2์˜ ์›์†Œ๋ฅผ ์ธ๋ฑ์Šค๋ณ„๋กœ ๊ฐ๊ฐ ๋ฝ‘์•„์„œ ๋ฌถ์–ด์ฃผ๊ธฐ ์œ„ํ•ด zip()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. 

์ž…๋ ฅ์ด arr1 = [9, 20, 28, 18, 11], arr2 = [30, 1, 21, 17, 28] ์ด๋ผ๊ณ  ์ฃผ์–ด์ง„๋‹ค๋ฉด ๋‹ค์Œ๊ณผ๊ฐ™์ด dec_arr ๋ฆฌ์ŠคํŠธ์— ์ €์žฅ๋  ๊ฒƒ์ด๋‹ค. 

dec_arr ์ถœ๋ ฅ๊ฒฐ๊ณผ

Line 6~9: dec_arr ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ ์›์†Œ๋“ค์— ๋Œ€ํ•ด OR ๋น„ํŠธ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•œ๋‹ค. ๋ฌธ์ œ์—์„œ ๋ณด๋ฉด ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด ํ•˜๋‚˜๋งŒ 1์ด์–ด๋„ 1๋กœ ๋‚˜ํƒ€๋ƒˆ๊ธฐ ๋•Œ๋ฌธ์— or์—ฐ์‚ฐ์„ ๋Œ๋ ค๋ณด๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ”๋กœ ๋‚˜์˜ค๋Š”๊ฑธ ํ™•์ธํ• ์ˆ˜์žˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š”๊ฑด ์ด์ง„์ˆ˜ ํ˜•ํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— result๋ฅผ binaryํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค์Œ, ์•ž์— 0b๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด์„œ ๋ฌธ์ž์—ด ์Šฌ๋ผ์ด์‹ฑ์„ ํ•ด์ฃผ์—ˆ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  zfill() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ n๊ธธ์ด๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์•ž์„ 0์œผ๋กœ ์ฑ„์›Œ์ค€๋‹ค.  

bin_arr ์ถœ๋ ฅ๊ฒฐ๊ณผ

Line 11~13: ๋งˆ์ง€๋ง‰์œผ๋กœ, ๋ชจ๋“  ์›์†Œ๋“ค์— ๋Œ€ํ•ด ๋ฌธ์ž์—ด "1"์„ "#"์œผ๋กœ, "0"์€ " " ์œผ๋กœ ์น˜ํ™˜ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ๋ฌธ์ž์—ด ์น˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ replace()๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ์—ˆ๋‹ค.