Algorithm Problem/Python

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ธฐ๋‘ฅ๊ณผ ๋ณด ์„ค์น˜(2020 KAKAO BLIND RECRUITMENT)

deo2kim 2020. 8. 22. 08:17
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  1. Lv3
  2. ์„ค์น˜๋œ ๊ตฌ์กฐ๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋ฆฌ์ŠคํŠธ์— ์Œ“๋Š”๋‹ค.
    ex) ์„ค์น˜๋œ_๋ฆฌ์ŠคํŠธ: [(์ขŒํ‘œ, ์ขŒํ‘œ, ๊ตฌ์กฐ๋ฌผ), ..., (์ขŒํ‘œ, ์ขŒํ‘œ, ๊ตฌ์กฐ๋ฌผ)] | x,y,(๊ธฐ๋‘ฅor๋ณด)
  3. ์ด ์„ค์น˜๋œ ๊ตฌ์กฐ๋ฌผ ๋ฆฌ์ŠคํŠธ๋ฅผ for๋ฌธ์„ ๋Œ๋ฉฐ ์ด ๊ตฌ์กฐ๋ฌผ๋“ค์˜ ์„ค์น˜๊ฐ€ ์กฐ๊ฑด์— ๋งž๋Š” ์ง€ ์ฒดํฌํ•œ๋‹ค. def check()
  4. ๊ตฌ์กฐ๋ฌผ ์„ค์น˜์ผ ๊ฒฝ์šฐ
    1. ์ผ๋‹จ ์„ค์น˜ํ•œ๋‹ค.
    2. ํฐ 3๋ฒˆ์„ ์ฒดํฌํ•œ๋‹ค.
    3. ๊ตฌ์กฐ๋ฌผ๋“ค์ด ์กฐ๊ฑด์— ๋งž์ง€ ์•Š์œผ๋ฉด ์ถ”๊ฐ€ํ•œ ๊ฒƒ์„ ์‚ญ์ œํ•œ๋‹ค.
  5. ๊ตฌ์กฐ๋ฌผ ์‚ญ์ œ์ผ ๊ฒฝ์šฐ
    1. ์ผ๋‹ค ์‚ญ์ œํ•œ๋‹ค.
    2. 3๋ฒˆ์„ ์ฒดํฌํ•œ๋‹ค.
    3. ๊ตฌ์กฐ๋ฌผ๋“ค์ด ์กฐ๊ฑด์— ๋งž์ง€ ์•Š์œผ๋ฉด ์‚ญ์ œํ•œ ๊ฒƒ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
  6. ์ž˜ ์ •๋ ฌํ•ด์„œ ๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค.!!!!!

๐Ÿ’จ ์—ฌ๊ธฐ์„œ set() ์„์“ฐ๋Š” ์ด์œ ๋Š” if a in list: ๊ฐ™์€ ๊ฒฝ์šฐ ๋•Œ๋ฌธ.

๋ฆฌ์ŠคํŠธ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” O(n) ์ด์ง€๋งŒ 

์…‹์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” O(1) ์ด๋‹ค.

๋งˆ์ง€๋ง‰์— ๋‹ต์„ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ”๊ฟ”์ค˜์•ผํ•˜๋Š”๊ฒŒ ๊ท€์ฐฎ์ง€๋งŒ ์ด ๋ฌธ์ œ์—์„œ๋Š” ํƒ์ƒ‰์„ ๋งŽ์ด ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์—์„œ ํฐ ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค. ๋ฌผ๋ก  ๋ฆฌ์ŠคํŠธ๋กœ ํ•ด๋„ ํ†ต๊ณผ๋Š” ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

def check(answer):
    for x, y, structure in answer:
        if structure == 0:  # ๊ธฐ๋‘ฅ
            # ์•„๋ž˜ ๋ฐ”๋‹ฅ or ์•„๋ž˜ ๊ธฐ๋‘ฅ or ์™ผ์ชฝ ๋ณด or ์˜ค๋ฅธ์ชฝ ๋ณด
            if y == 0 or (x, y - 1, 0) in answer or (x - 1, y, 1) in answer or (x, y, 1) in answer:
                continue
            else:
                return False
        else:  # ๋ณด
            # ์•„๋ž˜ ๊ธฐ๋‘ฅ or ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ๊ธฐ๋‘ฅ or (์™ผ์ชฝ ๋ณด and ์˜ค๋ฅธ์ชฝ ๋ณด)
            if (x, y - 1, 0) in answer or (x + 1, y - 1, 0) in answer or (
                    (x - 1, y, 1) in answer and (x + 1, y, 1) in answer):
                continue
            else:
                return False

    return True


def solution(n, build_frame):
    # set์„ ์“ฐ๋Š” ์ด์œ : if a in lst ์™€ ๊ฐ™์ด ์–ด๋–ค ๋ฆฌ์ŠคํŠธ์•ˆ์— ๊ฐ’์ด ๋“ค์–ด์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ํ™•์ธํ•  ๋•Œ set์ด ํ›จ์”ฌ ๋น ๋ฅด๋‹ค
    answer = set()  

    for x, y, structure, action in build_frame:
        # set์—๋Š” listํ˜•ํƒœ๋ฅผ addํ•  ์ˆ˜ ์—†๋‹ค. ๋‚˜์ค‘์— ๋ฐ”๊ฟ”์ค˜์•ผ ํ•ด์„œ ๊ท€์ฐฎ๋‹ค.. ํ•˜์ง€๋งŒ ์†๋„
        xys = (x, y, structure)  
        if action == 1:  # ์„ค์น˜
            answer.add(xys)  # ์ผ๋‹จ ์„ค์น˜ํ•ด๋ณด๊ณ 
            if not check(answer):  # ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด
                answer.remove(xys)  # ๋‹ค์‹œ ์‚ญ์ œ

        else:  # ์‚ญ์ œ
            answer.remove(xys)  # ์ผ๋‹จ ์‚ญ์ œํ•˜๊ณ 
            if not check(answer):  # ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด 
                answer.add(xys)  # ๋‹ค์‹œ ์ถ”๊ฐ€

    # ์ •๋ ฌ...
    answer = [list(ans) for ans in answer]
    answer.sort(key=lambda x: (x[0], x[1], x[2]))

    return answer


qq = [
    [5, [[1, 0, 0, 1], [1, 1, 1, 1], [2, 1, 0, 1], [2, 2, 1, 1], [5, 0, 0, 1], [5, 1, 0, 1], [4, 2, 1, 1],
         [3, 2, 1, 1]], ],
    [5, [[0, 0, 0, 1], [2, 0, 0, 1], [4, 0, 0, 1], [0, 1, 1, 1], [1, 1, 1, 1], [2, 1, 1, 1], [3, 1, 1, 1], [2, 0, 0, 0],
         [1, 1, 1, 0], [2, 2, 0, 1]]]
]

for q in qq:
    print(solution(q[0], q[1]))

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

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

๋งํฌ: https://programmers.co.kr/learn/courses/30/lessons/60061

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ธฐ๋‘ฅ๊ณผ ๋ณด ์„ค์น˜

5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[

programmers.co.kr




๋ฌธ์ œ ์„ค๋ช…

๋น™ํ•˜๊ฐ€ ๊นจ์ง€๋ฉด์„œ ์Šค๋…ธ์šฐํƒ€์šด์— ๋– ๋‚ด๋ ค ์˜จ ์ฃ ๋ฅด๋””๋Š” ์ธ์ƒ 2๋ง‰์„ ์œ„ํ•ด ์ฃผํƒ ๊ฑด์ถ•์‚ฌ์—…์— ๋›ฐ์–ด๋“ค๊ธฐ๋กœ ๊ฒฐ์‹ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ฃ ๋ฅด๋””๋Š” ๊ธฐ๋‘ฅ๊ณผ ๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฒฝ๋ฉด ๊ตฌ์กฐ๋ฌผ์„ ์ž๋™์œผ๋กœ ์„ธ์šฐ๋Š” ๋กœ๋ด‡์„ ๊ฐœ๋ฐœํ•  ๊ณ„ํš์ธ๋ฐ, ๊ทธ์— ์•ž์„œ ๋กœ๋ด‡์˜ ๋™์ž‘์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์€ 2์ฐจ์› ๊ฐ€์ƒ ๋ฒฝ๋ฉด์— ๊ธฐ๋‘ฅ๊ณผ ๋ณด๋ฅผ ์ด์šฉํ•œ ๊ตฌ์กฐ๋ฌผ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ธฐ๋‘ฅ๊ณผ ๋ณด๋Š” ๊ธธ์ด๊ฐ€ 1์ธ ์„ ๋ถ„์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ๋‘ฅ์€ ๋ฐ”๋‹ฅ ์œ„์— ์žˆ๊ฑฐ๋‚˜ ๋ณด์˜ ํ•œ์ชฝ ๋ ๋ถ€๋ถ„ ์œ„์— ์žˆ๊ฑฐ๋‚˜, ๋˜๋Š” ๋‹ค๋ฅธ ๊ธฐ๋‘ฅ ์œ„์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณด๋Š” ํ•œ์ชฝ ๋ ๋ถ€๋ถ„์ด ๊ธฐ๋‘ฅ ์œ„์— ์žˆ๊ฑฐ๋‚˜, ๋˜๋Š” ์–‘์ชฝ ๋ ๋ถ€๋ถ„์ด ๋‹ค๋ฅธ ๋ณด์™€ ๋™์‹œ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹จ, ๋ฐ”๋‹ฅ์€ ๋ฒฝ๋ฉด์˜ ๋งจ ์•„๋ž˜ ์ง€๋ฉด์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

2์ฐจ์› ๋ฒฝ๋ฉด์€ n x n ํฌ๊ธฐ ์ •์‚ฌ๊ฐ ๊ฒฉ์ž ํ˜•ํƒœ์ด๋ฉฐ, ๊ฐ ๊ฒฉ์ž๋Š” 1 x 1 ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ๋งจ ์ฒ˜์Œ ๋ฒฝ๋ฉด์€ ๋น„์–ด์žˆ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋‘ฅ๊ณผ ๋ณด๋Š” ๊ฒฉ์ž์„ ์˜ ๊ต์ฐจ์ ์— ๊ฑธ์น˜์ง€ ์•Š๊ณ , ๊ฒฉ์ž ์นธ์˜ ๊ฐ ๋ณ€์— ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋„๋ก ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๊ธฐ๋‘ฅ๊ณผ ๋ณด๋ฅผ ์„ค์น˜ํ•ด ๊ตฌ์กฐ๋ฌผ์„ ๋งŒ๋“  ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์œ„ ๊ทธ๋ฆผ์€ ๋‹ค์Œ ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ตฌ์กฐ๋ฌผ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

  1. (1, 0)์—์„œ ์œ„์ชฝ์œผ๋กœ ๊ธฐ๋‘ฅ์„ ํ•˜๋‚˜ ์„ค์น˜ ํ›„, (1, 1)์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ณด๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  2. (2, 1)์—์„œ ์œ„์ชฝ์œผ๋กœ ๊ธฐ๋‘ฅ์„ ํ•˜๋‚˜ ์„ค์น˜ ํ›„, (2, 2)์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ณด๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  3. (5, 0)์—์„œ ์œ„์ชฝ์œผ๋กœ ๊ธฐ๋‘ฅ์„ ํ•˜๋‚˜ ์„ค์น˜ ํ›„, (5, 1)์—์„œ ์œ„์ชฝ์œผ๋กœ ๊ธฐ๋‘ฅ์„ ํ•˜๋‚˜ ๋” ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  4. (4, 2)์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ณด๋ฅผ ์„ค์น˜ ํ›„, (3, 2)์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ณด๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

๋งŒ์•ฝ (4, 2)์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ณด๋ฅผ ๋จผ์ € ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ , (3, 2)์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ณด๋ฅผ ์„ค์น˜ํ•˜๋ ค ํ•œ๋‹ค๋ฉด 2๋ฒˆ ๊ทœ์น™์— ๋งž์ง€ ์•Š์œผ๋ฏ€๋กœ ์„ค์น˜๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋‘ฅ๊ณผ ๋ณด๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์žˆ๋Š”๋ฐ ๊ธฐ๋‘ฅ๊ณผ ๋ณด๋ฅผ ์‚ญ์ œํ•œ ํ›„์— ๋‚จ์€ ๊ธฐ๋‘ฅ๊ณผ ๋ณด๋“ค ๋˜ํ•œ ์œ„ ๊ทœ์น™์„ ๋งŒ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ, ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ•ด๋‹น ์ž‘์—…์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

๋ฒฝ๋ฉด์˜ ํฌ๊ธฐ n, ๊ธฐ๋‘ฅ๊ณผ ๋ณด๋ฅผ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š” ์ž‘์—…์ด ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด build_frame์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋ชจ๋“  ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„ ๊ตฌ์กฐ๋ฌผ์˜ ์ƒํƒœ๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • n์€ 5 ์ด์ƒ 100 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • build_frame์˜ ์„ธ๋กœ(ํ–‰) ๊ธธ์ด๋Š” 1 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • build_frame์˜ ๊ฐ€๋กœ(์—ด) ๊ธธ์ด๋Š” 4์ž…๋‹ˆ๋‹ค.
  • build_frame์˜ ์›์†Œ๋Š” [x, y, a, b]ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.
    • x, y๋Š” ๊ธฐ๋‘ฅ, ๋ณด๋ฅผ ์„ค์น˜ ๋˜๋Š” ์‚ญ์ œํ•  ๊ต์ฐจ์ ์˜ ์ขŒํ‘œ์ด๋ฉฐ, [๊ฐ€๋กœ ์ขŒํ‘œ, ์„ธ๋กœ ์ขŒํ‘œ] ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.
    • a๋Š” ์„ค์น˜ ๋˜๋Š” ์‚ญ์ œํ•  ๊ตฌ์กฐ๋ฌผ์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, 0์€ ๊ธฐ๋‘ฅ, 1์€ ๋ณด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • b๋Š” ๊ตฌ์กฐ๋ฌผ์„ ์„ค์น˜ํ•  ์ง€, ํ˜น์€ ์‚ญ์ œํ•  ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ 0์€ ์‚ญ์ œ, 1์€ ์„ค์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • ๋ฒฝ๋ฉด์„ ๋ฒ—์–ด๋‚˜๊ฒŒ ๊ธฐ๋‘ฅ, ๋ณด๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.
    • ๋ฐ”๋‹ฅ์— ๋ณด๋ฅผ ์„ค์น˜ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • ๊ตฌ์กฐ๋ฌผ์€ ๊ต์ฐจ์  ์ขŒํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ณด๋Š” ์˜ค๋ฅธ์ชฝ, ๊ธฐ๋‘ฅ์€ ์œ„์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ์„ค์น˜ ๋˜๋Š” ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • ๊ตฌ์กฐ๋ฌผ์ด ๊ฒน์น˜๋„๋ก ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์™€, ์—†๋Š” ๊ตฌ์กฐ๋ฌผ์„ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ตœ์ข… ๊ตฌ์กฐ๋ฌผ์˜ ์ƒํƒœ๋Š” ์•„๋ž˜ ๊ทœ์น™์— ๋งž์ถฐ return ํ•ด์ฃผ์„ธ์š”.
    • return ํ•˜๋Š” ๋ฐฐ์—ด์€ ๊ฐ€๋กœ(์—ด) ๊ธธ์ด๊ฐ€ 3์ธ 2์ฐจ์› ๋ฐฐ์—ด๋กœ, ๊ฐ ๊ตฌ์กฐ๋ฌผ์˜ ์ขŒํ‘œ๋ฅผ ๋‹ด๊ณ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • return ํ•˜๋Š” ๋ฐฐ์—ด์˜ ์›์†Œ๋Š” [x, y, a] ํ˜•์‹์ž…๋‹ˆ๋‹ค.
    • x, y๋Š” ๊ธฐ๋‘ฅ, ๋ณด์˜ ๊ต์ฐจ์  ์ขŒํ‘œ์ด๋ฉฐ, [๊ฐ€๋กœ ์ขŒํ‘œ, ์„ธ๋กœ ์ขŒํ‘œ] ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.
    • ๊ธฐ๋‘ฅ, ๋ณด๋Š” ๊ต์ฐจ์  ์ขŒํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฅธ์ชฝ, ๋˜๋Š” ์œ„์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ์„ค์น˜๋˜์–ด ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • a๋Š” ๊ตฌ์กฐ๋ฌผ์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, 0์€ ๊ธฐ๋‘ฅ, 1์€ ๋ณด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • return ํ•˜๋Š” ๋ฐฐ์—ด์€ x์ขŒํ‘œ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•˜๋ฉฐ, x์ขŒํ‘œ๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ y์ขŒํ‘œ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์ฃผ์„ธ์š”.
    • x, y์ขŒํ‘œ๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ธฐ๋‘ฅ์ด ๋ณด๋ณด๋‹ค ์•ž์— ์˜ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

nbuild_frameresult

5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]]
5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[0,0,0],[0,1,1],[1,1,1],[2,1,1],[3,1,1],[4,0,0]]

์ž…์ถœ๋ ฅ ์˜ˆ์— ๋Œ€ํ•œ ์„ค๋ช…

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

๋ฌธ์ œ์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์—ฌ๋Ÿ ๋ฒˆ์งธ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ›„ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋ฌผ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.

์•„ํ™‰ ๋ฒˆ์งธ ์ž‘์—…์˜ ๊ฒฝ์šฐ, (1, 1)์—์„œ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋ณด๋ฅผ ์‚ญ์ œํ•˜๋ฉด (2, 1)์—์„œ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋ณด๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

์—ด ๋ฒˆ์งธ ์ž‘์—…์˜ ๊ฒฝ์šฐ, (2, 2)์—์„œ ์œ„์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ๊ธฐ๋‘ฅ์„ ์„ธ์šธ ๊ฒฝ์šฐ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•