๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/์ฝ”๋“œ์—…(Code up)

[ ํŒŒ์ด์ฌ(python) ] ์ฝ”๋“œ์—… 1460 ~ 1467 - 2์ฐจ์› ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ์ฑ„์šฐ๊ธฐ 1-1 ~ 1-8

by YWTechIT 2021. 4. 29.
728x90

๐Ÿ“ ์ฝ”๋“œ์—… 1460 ~ 1467 2์ฐจ์› ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ์ฑ„์šฐ๊ธฐ 1-1 ~ 1-8

์ฝ”๋“œ์—… [ ๊ธฐ์ดˆ - ๋ฐฐ์—ด์—ฐ์Šต ]

โšก๏ธ ์„œ๋ก 

2์ฐจ์› ๋ฐฐ์—ด์˜ ๊ธฐ์ดˆ์ ์ธ ๊ฐœ๋…์„ ๋‹ค์ง„ ๋ฌธ์ œ๋‹ค.


์ €๋ฒˆ ์ฃผ DFS, BFS ๊ด€๋ จ ๋ฌธ์ œ ํ’€ ๋•Œ 2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ๊ทธ๋•Œ๋งˆ๋‹ค ๊ฐ€๋กœ x ์„ธ๋กœ ํ˜น์€ ์„ธ๋กœ x ๊ฐ€๋กœ๋กœ ์ž…๋ ฅ์ด ์ฃผ์–ด์ง€๋ฉด ๋‚ด๊ฐ€ ์ง€๊ธˆ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•˜๋Š”์ง€ ๊ธด๊ฐ€๋ฏผ๊ฐ€ํ–ˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ ๊ธฐํšŒ์— ๊ฐœ๋…์„ ๋‹ค์‹œ ์žก์„ ์ˆ˜ ์žˆ์–ด ์ข‹์•˜๋‹ค.

 

์ฝ”๋“œ ์—…์— 2์ฐจ์› ๋ฐฐ์—ด์ด๋ผ๊ณ  ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ๋ฌธ์ œ๋“ค์€ ์ „๋ถ€ ํ’€์–ด๋ด์•ผ๊ฒ ๋‹ค.


โšก๏ธ ๋ณธ๋ก 

๐Ÿ“ 1460 : [ ๊ธฐ์ดˆ - ๋ฐฐ์—ด ์—ฐ์Šต ] 2์ฐจ์› ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ์ฑ„์šฐ๊ธฐ 1-1

n*nํฌ๊ธฐ์˜ 2์ฐจ์›๋ฐฐ์—ด์„ ์ฑ„์šฐ๋Š” ๋ฌธ์ œ๋‹ค.

n = int(input())

cnt = 1
for i in range(n):
    for j in range(n):
        print(cnt, end=' ')
        cnt += 1
    print()

๐Ÿ“ 1461 : [ ๊ธฐ์ดˆ - ๋ฐฐ์—ด ์—ฐ์Šต ] 2์ฐจ์› ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ์ฑ„์šฐ๊ธฐ 1-2

n*nํฌ๊ธฐ์˜ 2์ฐจ์› ๋ฐฐ์—ด์„ ์ฑ„์šฐ๋Š” ๊ฑด ๋™์ผํ•˜์ง€๋งŒ, ๋ฒ”์œ„๋ฅผ ๊ฑฐ๊พธ๋กœ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„์•ผ ํ•œ๋‹ค. range(n-1, -1, -1)์„ ์ž‘์„ฑํ•˜๋ฉด ๊ฑฐ๊พธ๋กœ ์ฑ„์šธ ์ˆ˜ ์žˆ๋‹ค.

 

๋˜, DFS, BFS๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๋ณด๋‹ˆ๊นŒ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ arr์„ ๋จผ์ € 2์ฐจ์› ๋ฐฐ์—ด ๊ฐ’์„ 0์œผ๋กœ ์„ ์–ธํ•ด๋†“๊ณ  fill์„ ํ•ด๋‹น ์นธ์— ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

n = int(input())
arr = [[0] * n for _ in range(n)]

fill = 1
for i in range(len(arr)):
    for j in range(len(arr[i]) - 1, -1, -1):
        arr[i][j] = fill
        fill += 1

for i in arr:
    print(*i, ' ')

๐Ÿ“ 1462 : [ ๊ธฐ์ดˆ - ๋ฐฐ์—ด ์—ฐ์Šต ] 2์ฐจ์› ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ์ฑ„์šฐ๊ธฐ 1-3

์ด๋ฒˆ์—” ๊ฐ€๋กœ๊ฐ€ ์•„๋‹Œ ์„ธ๋กœ๋ถ€ํ„ฐ ์ฑ„์šฐ๋Š” ๋ฌธ์ œ๋‹ค. ์ด๋•Œ๋Š” arr [j][i]๋กœ ์„ ์–ธํ•ด์ฃผ๋ฉด ์„ธ๋กœ๋ถ€ํ„ฐ ์ฑ„์šธ ์ˆ˜ ์žˆ๋‹ค. ํ’€๋‹ค ๋ณด๋‹ˆ๊นŒ ๋ฒ”์œ„ ์„ค์ •์„ len(arr)๋กœ ํ–ˆ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ํ•˜๋Š”๊ฒƒ๋ณด๋‹ค ์ž…๋ ฅ๊ฐ’ n์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋” ๊ฐ€๋…์„ฑ์ด ๋›ฐ์–ด๋‚œ ๊ฒƒ ๊ฐ™๋‹ค.

 

๋˜, ์ด ๋ฌธ์ œ๋Š” zip์„ ์‚ฌ์šฉํ•ด์„œ ํ’€ ์ˆ˜๋„ ์žˆ๋Š”๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ–‰๋ ฌ์„ ๋งŒ๋“ค๊ณ  ๋‚˜์„œ zipํ•จ์ˆ˜๋กœ ๋ฌถ์–ด์ค˜๋„ ๊ฐ’์ด ๋™์ผํ•˜๊ฒŒ ๋‚˜์˜จ๋‹ค.

1 2 3
4 5 6
7 8 9
# ๊ณตํ†ต ์ฝ”๋“œ
n = int(input())
arr = [[0] * n for _ in range(n)]

# ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ
cnt = 0
for i in range(n):
    for j in range(n):
        cnt +=1
        arr[j][i] = cnt

for i in arr:
    print(*i, ' ')

# zipํ•จ์ˆ˜ ์‚ฌ์šฉ
cnt = 0
for i in range(n):
    for j in range(n):
        cnt +=1
        arr[i][j] = cnt

arr = list(map(list, zip(*arr)))

for i in arr:
    print(*i, ' ')

๐Ÿ“ 1463 : [ ๊ธฐ์ดˆ - ๋ฐฐ์—ด ์—ฐ์Šต ] 2์ฐจ์› ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ์ฑ„์šฐ๊ธฐ 1-4

์ด ๋ฌธ์ œ๋ถ€ํ„ฐ๋Š” n*m ์ฆ‰, ์ง์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ 2์ฐจ์› ๋ฐฐ์—ด์„ ์ฑ„์šฐ๋Š” ๋ฌธ์ œ๋‹ค. ๋‚˜๋Š” ์„ธ๋กœ x ๊ฐ€๋กœํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ”์„œ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ž…๋ ฅ์€ ๊ฐ€๋กœ x ์„ธ๋กœ ํ˜•ํƒœ๋กœ ์ฃผ์–ด์กŒ๋‹ค. 2์ฐจ์› ํ–‰๋ ฌ์„ ์„ ์–ธํ•  ๋•Œ ํ—ท๊ฐˆ๋ฆฌ์ง€ ๋ง์ž.

n, m = map(int, input().split())
arr = [[0] * m for _ in range(n)]

cnt = 0
for i in range(n-1, -1, -1):
    for j in range(m-1, -1, -1):
        cnt += 1
        arr[i][j] = cnt

for i in arr:
    print(*i, ' ')

๐Ÿ“ 1464 : [ ๊ธฐ์ดˆ - ๋ฐฐ์—ด ์—ฐ์Šต ] 2์ฐจ์› ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ์ฑ„์šฐ๊ธฐ 1-5

n, m = map(int, input().split())
arr = [[0] * m for _ in range(n)]

cnt = 0
for i in range(n-1, -1, -1):
    for j in range(m-1, -1, -1):
        cnt += 1
        arr[i][j] = cnt

for i in arr:
    print(*i, ' ')

๐Ÿ“ 1465 : [ ๊ธฐ์ดˆ - ๋ฐฐ์—ด์—ฐ์Šต ] 2์ฐจ์› ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ์ฑ„์šฐ๊ธฐ 1-6

n, m = map(int, input().split())

arr = [[0] * m for _ in range(n)]

cnt = 0
for i in range(n - 1, -1, -1):
    for j in range(m):
        cnt += 1
        arr[i][j] = cnt

for i in arr:
    print(*i, ' ')

๐Ÿ“ 1466 : [ ๊ธฐ์ดˆ - ๋ฐฐ์—ด์—ฐ์Šต ] 2์ฐจ์› ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ์ฑ„์šฐ๊ธฐ 1-7

๋ฌธ์ œ๋ฅผ ํ’€๋‹ค ๋ณด๋‹ˆ๊นŒ 2์ฐจ์› ๋ฐฐ์—ด์„ ์ฑ„์šธ ๋•Œ ๊ณตํ†ต์ ์ด ์žˆ์—ˆ๋Š”๋ฐ,

๋‹ค์Œ ํ–‰๋ ฌ๊ณผ ๊ฐ™์ด ๊ฐ€๋กœ๋ถ€ํ„ฐ ์ฑ„์›Œ์ง€๋Š” ํ–‰๋ ฌ์€ ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ๊ฐ€๋กœ(n)๋ถ€ํ„ฐ ์„ ์–ธํ•˜๊ณ  arr[i][j]๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

1 2 3
4 5 6

๋ฐ˜๋Œ€๋กœ ๋‹ค์Œ ํ–‰๋ ฌ๊ณผ ๊ฐ™์ด ์„ธ๋กœ๋ถ€ํ„ฐ ์ฑ„์›Œ์ง€๋Š” ํ–‰๋ ฌ์€ ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ์„ธ๋กœ(m)๋ถ€ํ„ฐ ์„ ์–ธํ•˜๊ณ  arr[j][i]๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

1 3 5
2 4 6
n, m = map(int, input().split())

arr = [[0] * m for _ in range(n)]

cnt = 0
for i in range(m - 1, -1, -1):
    for j in range(n - 1, -1, -1):
        cnt += 1
        arr[j][i] = cnt

for i in arr:
    print(*i, ' ')

๐Ÿ“ 1467 : [ ๊ธฐ์ดˆ - ๋ฐฐ์—ด ์—ฐ์Šต ] 2์ฐจ์› ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ์ฑ„์šฐ๊ธฐ 1-8

์„ธ๋กœ๋ถ€ํ„ฐ ๊ฐ’์ด ์ฑ„์›Œ์ง€๋‹ˆ๊นŒ m์„ ๋จผ์ € ๋ฐ˜๋ณต๋ฌธ์— ์ž‘์„ฑํ•˜๊ณ  arr[j][i]๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. ์ˆœ์„œ๊ฐ€ ๋’ค์—๋ถ€ํ„ฐ ์Œ“์ด๋ฉด ๋ฒ”์œ„๋ฅผ ๋’ค์—์„œ๋ถ€ํ„ฐ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

n, m = map(int, input().split())

arr = [[0] * m for _ in range(n)]

cnt = 0
for i in range(m-1, -1, -1):
    for j in range(n):
        cnt += 1
        arr[j][i] = cnt

for i in arr:
    for j in i:
        print(j, end=' ')
    print()

โšก๏ธ ๊ฒฐ๋ก 

๊ธฐ์ดˆ์ ์ธ 2์ฐจ์› ๋ฐฐ์—ด ์ฑ„์šฐ๋Š” ๋ฒ•์„ ์•Œ์•˜๊ณ , ๋‹ค์Œ์—๋Š” ์ง€๊ทธ์žฌ๊ทธ๋กœ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์„ ๊ณต๋ถ€ํ•ด๋ณด์ž.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€