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

2025. 7. 16. 17:10ยท๐Ÿ“š ๋ฐฑ์ค€
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

https://school.programmers.co.kr/learn/courses/30/lessons/17681

 

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

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

๋”๋ณด๊ธฐ

๋ฌธ์ œ ์„ค๋ช…

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

  1. ์ง€๋„๋Š” ํ•œ ๋ณ€์˜ ๊ธธ์ด๊ฐ€ n์ธ ์ •์‚ฌ๊ฐํ˜• ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ, ๊ฐ ์นธ์€ "๊ณต๋ฐฑ"(" ") ๋˜๋Š” "๋ฒฝ"("#") ๋‘ ์ข…๋ฅ˜๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
  2. ์ „์ฒด ์ง€๋„๋Š” ๋‘ ์žฅ์˜ ์ง€๋„๋ฅผ ๊ฒน์ณ์„œ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ๊ฐ "์ง€๋„ 1"๊ณผ "์ง€๋„ 2"๋ผ๊ณ  ํ•˜์ž. ์ง€๋„ 1 ๋˜๋Š” ์ง€๋„ 2 ์ค‘ ์–ด๋А ํ•˜๋‚˜๋ผ๋„ ๋ฒฝ์ธ ๋ถ€๋ถ„์€ ์ „์ฒด ์ง€๋„์—์„œ๋„ ๋ฒฝ์ด๋‹ค. ์ง€๋„ 1๊ณผ ์ง€๋„ 2์—์„œ ๋ชจ๋‘ ๊ณต๋ฐฑ์ธ ๋ถ€๋ถ„์€ ์ „์ฒด ์ง€๋„์—์„œ๋„ ๊ณต๋ฐฑ์ด๋‹ค.
  3. "์ง€๋„ 1"๊ณผ "์ง€๋„ 2"๋Š” ๊ฐ๊ฐ ์ •์ˆ˜ ๋ฐฐ์—ด๋กœ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ๋‹ค.
  4. ์•”ํ˜ธํ™”๋œ ๋ฐฐ์—ด์€ ์ง€๋„์˜ ๊ฐ ๊ฐ€๋กœ์ค„์—์„œ ๋ฒฝ ๋ถ€๋ถ„์„ 1, ๊ณต๋ฐฑ ๋ถ€๋ถ„์„ 0์œผ๋กœ ๋ถ€ํ˜ธํ™”ํ–ˆ์„ ๋•Œ ์–ป์–ด์ง€๋Š” ์ด์ง„์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์˜ ๋ฐฐ์—ด์ด๋‹ค.

๋„ค์˜ค๊ฐ€ ํ”„๋กœ๋„์˜ ๋น„์ƒ๊ธˆ์„ ์†์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋„๋ก, ๋น„๋ฐ€์ง€๋„์˜ ์•”ํ˜ธ๋ฅผ ํ•ด๋…ํ•˜๋Š” ์ž‘์—…์„ ๋„์™€์ค„ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ.

 

์ž…๋ ฅ ํ˜•์‹

์ž…๋ ฅ์œผ๋กœ ์ง€๋„์˜ ํ•œ ๋ณ€ ํฌ๊ธฐ n ๊ณผ 2๊ฐœ์˜ ์ •์ˆ˜ ๋ฐฐ์—ด arr1, arr2๊ฐ€ ๋“ค์–ด์˜จ๋‹ค.

  • 1 โ‰ฆ n โ‰ฆ 16
  • arr1, arr2๋Š” ๊ธธ์ด n์ธ ์ •์ˆ˜ ๋ฐฐ์—ด๋กœ ์ฃผ์–ด์ง„๋‹ค.
  • ์ •์ˆ˜ ๋ฐฐ์—ด์˜ ๊ฐ ์›์†Œ x๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ–ˆ์„ ๋•Œ์˜ ๊ธธ์ด๋Š” n ์ดํ•˜์ด๋‹ค. ์ฆ‰, 0 โ‰ฆ x โ‰ฆ 2n - 1์„ ๋งŒ์กฑํ•œ๋‹ค.

 

์ถœ๋ ฅ ํ˜•์‹

์›๋ž˜์˜ ๋น„๋ฐ€์ง€๋„๋ฅผ ํ•ด๋…ํ•˜์—ฌ '#', ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด ๋ฐฐ์—ด๋กœ ์ถœ๋ ฅํ•˜๋ผ.

 

์ž…์ถœ๋ ฅ ์˜ˆ์ œ

 

ํ’€์ด

์ด ๋ฌธ์ œ๋Š” ์‹ญ์ง„์ˆ˜๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ด์„œ, ๋น„ํŠธ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ํ’€๋ฉด ๋œ๋‹ค.

1. ๊ฐ ๋ฐฐ์—ด์˜ ์ˆซ์ž๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ณ 

2. ๋ณ€ํ™˜ํ•œ ์ด์ง„์ˆ˜๋ผ๋ฆฌ ๋น„ํŠธ ์—ฐ์‚ฐ์ž | ๋ฅผ ์‚ฌ์šฉํ•ด ๋‘˜ ๋‹ค 0์ธ ๊ฒฝ์šฐ๋งŒ 0์ด ๋˜๋„๋ก ๋งŒ๋“ ๋‹ค.

์ด ๋•Œ | ์—ฐ์‚ฐ์ž๋Š” (OR) ์—ฐ์‚ฐ์ž๋กœ, '1100' | '1010' => '1110' ์œผ๋กœ ๊ณ„์‚ฐ๋œ๋‹ค.
๊ฐ™์ด ์•Œ๋ฉด ์ข‹์€ & ์—ฐ์‚ฐ์ž๋Š” (AND) ์—ฐ์‚ฐ์ž๋กœ, '1100' & '1010' => 1000' ์œผ๋กœ ๊ณ„์‚ฐ๋œ๋‹ค.
์ฆ‰, |๋Š” ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ 1์ด๋”๋ผ๋„ 1๋กœ ๊ณ„์‚ฐ๋˜๊ณ ,
&๋Š” ๋‘˜ ๋‹ค 1์ด์–ด์•ผ๋งŒ 1๋กœ ๊ณ„์‚ฐ๋œ๋‹ค.

3. ๋น„ํŠธ ์—ฐ์‚ฐ์ž๋กœ ๋ณ€ํ™˜๋œ ์ˆ˜๊ฐ€ 1->'#', 0-> ' ' ์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค.

 

 

์ •๋‹ต ์ฝ”๋“œ

์œ„ ์ˆœ์„œ๋Œ€๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

# ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฉ”์ธ ํ•จ์ˆ˜
def solution(n, arr1, arr2):
    # arr1๊ณผ arr2๋ฅผ ๋น„ํŠธ OR ์—ฐ์‚ฐ ํ›„ ์ด์ง„ ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜
    result = binary_num(arr1, arr2, n)
    answer = []

    # ๊ฐ ์ด์ง„ ๋ฌธ์ž์—ด์„ '#' ๋˜๋Š” ' '๋กœ ๋ณ€ํ™˜
    for i in range(len(result)):
        ans = ''
        for j in range(len(result[i])):
            if result[i][j] == '1':  # '1'์ด๋ฉด ๋ฒฝ์ด๋ฏ€๋กœ '#'
                ans += "#"
            else:                   # '0'์ด๋ฉด ๊ณต๋ฐฑ
                ans += " "
        answer.append(ans)  # ์™„์„ฑ๋œ ๋ฌธ์ž์—ด์„ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€
    return answer

# ๋‘ ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ ์š”์†Œ๋ฅผ ๋น„ํŠธ OR ์—ฐ์‚ฐํ•œ ํ›„, n์ž๋ฆฌ ์ด์ง„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
def binary_num(arr1, arr2, n):
    result = []
    for a, b in zip(arr1, arr2):  # arr1๊ณผ arr2์—์„œ ๊ฐ™์€ ์ธ๋ฑ์Šค๋ผ๋ฆฌ ์ง์ง€์–ด ๋ฐ˜๋ณต
        binary = bin(a | b)[2:].zfill(n)  # ๋น„ํŠธ OR ํ›„, ์•ž์˜ '0b' ์ œ๊ฑฐํ•˜๊ณ  n์ž๋ฆฟ์ˆ˜๋กœ ์ฑ„์›€
        result.append(binary)  # ๋ณ€ํ™˜๋œ ์ด์ง„ ๋ฌธ์ž์—ด์„ ๊ฒฐ๊ณผ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€
    return result

 

์ด ๋•Œ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ ํ•จ์ˆ˜๋Š” .zfill()์ด๋‹ค. ์ด ํ•จ์ˆ˜๋Š” n์ž๋ฆฌ์—์„œ ๋นˆ ๊ณณ์„ ์ฑ„์›Œ์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

bin ํ•จ์ˆ˜๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ .zfill()๊ณผ ๊ฐ™์ด ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ ํ•ต์‹ฌ์ด์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ“š ๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[python] ๋ฆฌ์ŠคํŠธ์—์„œ ์Šฌ๋ผ์ด์‹ฑ ํ›„ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ์š”์†Œ๋“ค๋งŒ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•  (0) 2025.08.21
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์˜์–ด ๋๋ง์ž‡๊ธฐ  (1) 2025.07.17
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜  (3) 2025.07.14
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ๋ฉ€๋ฆฌ๋›ฐ๊ธฐ  (0) 2025.07.13
[DP] ํŒŒ์ด์ฌ์œผ๋กœ Dynamic Programming ์ •๋ณตํ•˜๊ธฐ  (0) 2025.07.13
'๐Ÿ“š ๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [python] ๋ฆฌ์ŠคํŠธ์—์„œ ์Šฌ๋ผ์ด์‹ฑ ํ›„ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ์š”์†Œ๋“ค๋งŒ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์˜์–ด ๋๋ง์ž‡๊ธฐ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : ๋ฉ€๋ฆฌ๋›ฐ๊ธฐ
coram22
coram22
  • coram22
    ram2 ๐Ÿš—
    coram22
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (86)
      • ๐Ÿ’ง flutter (22)
      • ๐ŸŽ iOS (18)
      • ๐Ÿฉต CosPro (4)
        • python 2๊ธ‰ (4)
      • ๐Ÿˆ‍โฌ› git (3)
      • ๐Ÿ–ฅ๏ธ react (6)
      • ๐Ÿพ OS (1)
      • ๐Ÿ›œ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (6)
      • ๐ŸŒƒ computer vision (6)
      • ๐Ÿ“š ๋ฐฑ์ค€ (11)
      • ๐Ÿฃ My Story (1)
      • ๐Ÿ’ป else (8)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐Ÿˆโ€โฌ› github ๐Ÿˆโ€โฌ›
    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • ๐Ÿฑ Github ๐Ÿฑ
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    dart
    2๊ธ‰
    ์ปด๋„ค
    Swift
    Python
    ์ค‘๋„ํœดํ•™
    OpenCV
    ์˜ค๋ธ”์™„
    FLUTTER
    Git
    Xcode
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    Computer Vision
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    React
    SwiftUI
    ๊ณต์‹๋ฌธ์„œ
    ์ •๋‹ต
    UIKit
    IOS
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
coram22
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] : [1์ฐจ] ๋น„๋ฐ€์ง€๋„
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”