๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
"๊ณต๋ถ€" ๐‘Ÿ๐‘’๐‘๐‘œ๐‘Ÿ๐‘‘/๐ด๐‘™๐‘”๐‘œ๐‘Ÿ๐‘–๐‘กโ„Ž๐‘š

[Python/CodeUp] 6098 : [๊ธฐ์ดˆ-๋ฆฌ์ŠคํŠธ] ์„ฑ์‹คํ•œ ๊ฐœ๋ฏธ

by เท† Yoni เท† 2021. 12. 1.
728x90

6098 : [๊ธฐ์ดˆ-๋ฆฌ์ŠคํŠธ] ์„ฑ์‹คํ•œ ๊ฐœ๋ฏธ

์‹œ๊ฐ„ ์ œํ•œ: 1 Sec  ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ: 128 MB

 

 

[๊ธฐ์ดˆ-๋ฆฌ์ŠคํŠธ] ์„ฑ์‹คํ•œ ๊ฐœ๋ฏธ(py)

python์–ธ์–ด๊ธฐ์ดˆ100์ œv1.0 : @์ปดํ“จํ„ฐ๊ณผํ•™์‚ฌ๋ž‘, ์ „๊ตญ ์ •๋ณด(์ปดํ“จํ„ฐ)๊ต์‚ฌ ์ปค๋ฎค๋‹ˆํ‹ฐ/์—ฐ๊ตฌํšŒ - ํ•™๊ต ์ •๋ณด(์ปดํ“จํ„ฐ)์„ ์ƒ๋‹˜๋“ค๊ณผ ํ•จ๊ป˜ ์ˆ˜์—…/๋ฐฉ๊ณผํ›„ํ•™์Šต/๋™์•„๋ฆฌํ™œ๋™ ๋“ฑ์„ ํ†ตํ•ด ์žฌ๋ฏธ์žˆ๊ฒŒ ๋ฐฐ์›Œ๋ณด์„ธ์š”. - ๋ชจ๋“  ๋‚ด์šฉ

codeup.kr

 

๋ฌธ์ œ ์„ค๋ช…

์˜์ผ์ด๋Š” ์ƒ๋ช…๊ณผํ•™์— ๊ด€์‹ฌ์ด ์ƒ๊ฒจ ์™•๊ฐœ๋ฏธ๋ฅผ ์—ฐ๊ตฌํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

์™•๊ฐœ๋ฏธ๋ฅผ ์œ ์‹ฌํžˆ ์‚ดํŽด๋ณด๋˜ ์ค‘ ํŠน๋ณ„ํžˆ ์„ฑ์‹คํ•ด ๋ณด์ด๋Š” ๊ฐœ๋ฏธ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ,
๊ทธ ๊ฐœ๋ฏธ๋Š” ๊ฐœ๋ฏธ๊ตด์—์„œ ๋‚˜์™€ ๋จน์ด๊นŒ์ง€ ๊ฐ€์žฅ ๋น ๋ฅธ ๊ธธ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

๊ฐœ๋ฏธ๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์›€์ง์ด๋‹ค๊ฐ€ ๋ฒฝ์„ ๋งŒ๋‚˜๋ฉด ์•„๋ž˜์ชฝ์œผ๋กœ ์›€์ง์—ฌ ๊ฐ€์žฅ ๋น ๋ฅธ ๊ธธ๋กœ ์›€์ง์˜€๋‹ค.
(์˜ค๋ฅธ์ชฝ์— ๊ธธ์ด ๋‚˜ํƒ€๋‚˜๋ฉด ๋‹ค์‹œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์›€์ง์ธ๋‹ค.)

์ด์— ํ˜ธ๊ธฐ์‹ฌ์ด ์ƒ๊ธด ์˜์ผ์ด๋Š” ๊ทธ ๊ฐœ๋ฏธ๋ฅผ ๋ฏธ๋กœ ์ƒ์ž์— ๋„ฃ๊ณ  ์‚ดํŽด๋ณด๊ธฐ ์‹œ์ž‘ํ•˜์˜€๋‹ค.

๋ฏธ๋กœ ์ƒ์ž์— ๋„ฃ์€ ๊ฐœ๋ฏธ๋Š” ๋จน์ด๋ฅผ ์ฐพ์•˜๊ฑฐ๋‚˜, ๋” ์ด์ƒ ์›€์ง์ผ ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€
์˜ค๋ฅธ์ชฝ ๋˜๋Š” ์•„๋ž˜์ชฝ์œผ๋กœ๋งŒ ์›€์ง์˜€๋‹ค.

๋ฏธ๋กœ ์ƒ์ž์˜ ๊ตฌ์กฐ๊ฐ€ 0(๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ณณ), 1(๋ฒฝ ๋˜๋Š” ์žฅ์• ๋ฌผ)๋กœ ์ฃผ์–ด์ง€๊ณ ,
๋จน์ด๊ฐ€ 2๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์„ฑ์‹คํ•œ ๊ฐœ๋ฏธ์˜ ์ด๋™ ๊ฒฝ๋กœ๋ฅผ ์˜ˆ์ƒํ•ด๋ณด์ž.

๋‹จ, ๋งจ ์•„๋ž˜์˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ๋„์ฐฉํ•œ ๊ฒฝ์šฐ, ๋” ์ด์ƒ ์›€์ง์ผ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ, ๋จน์ด๋ฅผ ์ฐพ์€ ๊ฒฝ์šฐ์—๋Š”
๋”์ด์ƒ ์ด๋™ํ•˜์ง€ ์•Š๊ณ  ๊ทธ ๊ณณ์— ๋จธ๋ฌด๋ฅธ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

๋ฏธ๋กœ ์ƒ์ž์˜ ํ…Œ๋‘๋ฆฌ๋Š” ๋ชจ๋‘ ๋ฒฝ์œผ๋กœ ๋˜์–ด ์žˆ์œผ๋ฉฐ,
๊ฐœ๋ฏธ์ง‘์€ ๋ฐ˜๋“œ์‹œ (2, 2)์— ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฏธ๋Š” (2, 2)์—์„œ ์ถœ๋ฐœํ•œ๋‹ค.

์ž…๋ ฅ

10*10 ํฌ๊ธฐ์˜ ๋ฏธ๋กœ ์ƒ์ž์˜ ๊ตฌ์กฐ์™€ ๋จน์ด์˜ ์œ„์น˜๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.

์ถœ๋ ฅ

์„ฑ์‹คํ•œ ๊ฐœ๋ฏธ๊ฐ€ ์ด๋™ํ•œ ๊ฒฝ๋กœ๋ฅผ 9๋กœ ํ‘œ์‹œํ•ด ์ถœ๋ ฅํ•œ๋‹ค.

์ž…๋ ฅ ์˜ˆ์‹œ

1 1 1 1 1 1 1 1 1 1
1 0 0 1 0 0 0 0 0 1
1 0 0 1 1 1 0 0 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 1 0 1 0 1
1 0 0 0 0 1 2 1 0 1
1 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1

์ถœ๋ ฅ ์˜ˆ์‹œ

1 1 1 1 1 1 1 1 1 1
1 9 9 1 0 0 0 0 0 1
1 0 9 1 1 1 0 0 0 1
1 0 9 9 9 9 9 1 0 1
1 0 0 0 0 0 9 1 0 1
1 0 0 0 0 1 9 1 0 1
1 0 0 0 0 1 9 1 0 1
1 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1

 My ์ฝ”๋“œ

 

# ๋ฏธ๋กœ : m
m = [[0] * 10 for i in range(10)]

# 10*10 ํฌ๊ธฐ์˜ ๋ฏธ๋กœ ์ฑ„์šฐ๊ธฐ
for i in range(10):
    nums = input().split()
    for j in range(10):
        m[i][j] = int(nums[j])

# ๊ฐœ๋ฏธ ์›€์ง์ด๊ธฐ
# ๊ฐœ๋ฏธ์ง‘ ์œ„์น˜(2, 2)์—์„œ ์ถœ๋ฐœ
a = 1
b = 1

# 0(๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ณณ), 1(๋ฒฝ ๋˜๋Š” ์žฅ์• ๋ฌผ)
# ๋จน์ด๊ฐ€ 2
while True:
    # ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด๋ผ๋ฉด ๊ฒฝ๋กœ ํ‘œ์‹œ
    if m[a][b] == 0:
        m[a][b] = 9
    # ๋จน์ด๊ฐ€ ์žˆ๋Š” ๊ณณ์ด๋ผ๋ฉด ๊ฒฝ๋กœ ํ‘œ์‹œํ•˜๊ณ  ์ด๋™ ๋ฉˆ์ถ”๊ธฐ
    elif m[a][b] == 2:
        m[a][b] = 9
        break
    # ๋” ์ด์ƒ ์›€์ง์ผ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ด๋™ ๋ฉˆ์ถ”๊ธฐ
    if (m[a][b + 1] == 1 and m[a + 1][b] == 1) or (a == 9 and b == 9):
        break
    # ์˜ค๋ฅธ์ชฝ์— ๊ธธ์ด ๋‚˜ํƒ€๋‚˜๋ฉด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์›€์ง์ธ๋‹ค
    if m[a][b + 1] != 1:
        b += 1
    # ์•„๋ž˜์ชฝ์— ๊ธธ์ด ๋‚˜ํƒ€๋‚˜๋ฉด ์•„๋ž˜์ชฝ์œผ๋กœ ์›€์ง์ธ๋‹ค
    elif m[a + 1][b] != 1:
        a += 1

# ์„ฑ์‹คํ•œ ๊ฐœ๋ฏธ๊ฐ€ ์ด๋™ํ•œ ๊ฒฝ๋กœ๋ฅผ ์ถœ๋ ฅ
for i in range(10):
    for j in range(10):
        print(m[i][j], end=' ')
    print()
728x90

๋Œ“๊ธ€