DOing
[์๊ณ ๋ฆฌ์ฆ] ๊ตฌํ with Python ๋ณธ๋ฌธ
๐ก ๊ตฌํ
๊ตฌํ์ด๋ '์๊ณ ๋ฆฌ์ฆ์ ์์ค์ฝ๋๋ก ๋ฐ๊พธ๋ ๊ณผ์ '์ด๋ผ๊ณ ํ ์ ์๋ค.
์๊ณ ๋ฆฌ์ฆ ๊ต์ฌ์์๋ ๋๋ถ๋ถ ๊ตฌํ์ ๋ณ๋์ ์ ํ์ผ๋ก ๋ค๋ฃจ์ง ์์ง๋ง, ์ฝ๋ฉํ ์คํธ์์๋ ๊ตฌํ์ด ์ค์ฌ์ผ๋ก ๋๋ ๋ฌธ์ ๊ฐ ์์ฃผ ์ถ์ ๋๊ธฐ ๋๋ฌธ์ ๋ค๋ค๋ณด๊ธฐ๋ก ํ๋ค. ๋ณดํต ๊ตฌํ๋ฌธ์ ๋ 'ํ์ด๋ฅผ ๋ ์ฌ๋ฆฌ๋ ๊ฒ์ ์ฝ์ง๋ง ์์ค์ฝ๋๋ก ์ฎ๊ธฐ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ '๋ฅผ ์๋ฏธํ๋ค.
์๋ฅผ ๋ค์ด์ ์์ ํ์, ์๋ฎฌ๋ ์ด์ ๋ฌธ์ ์ ํ์ด ์๋ค. ์์ ํ์์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ์๋ฏธํ๊ณ , ์๋ฎฌ๋ ์ด์ ์ ๋ฌธ์ ์์ ์ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ํ๋จ๊ณ์ฉ ์ฐจ๋ก๋๋ก ์ง์ ์ํํด์ผํ๋ ๋ฌธ์ ์ ํ์ ์๋ฏธํ๋ค.
๐ก ์ฃผ์์
์์ ํ์์ฒ๋ผ ๋ง์ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ์ฐํ ๋ ์ฃผ์ํดํ ์ ์ ์ผ๋ฐ ์ฝ๋ฉ ํ ์คํธํ๊ฒฝ์์๋ ํ์ด์ฌ์ผ๋ก ์ ์ถํ ์ฝ๋๊ฐ 1์ด์ 2000๋ง๋ฒ(2*10^7)์ ์ฐ์ฐ์ ์ํํ๋ ๊ฒ์ด๋ค. ๋๋ถ๋ถ์ ์ฝ๋ฉํ ์คํธ์์๋ ์๊ฐ์ ํ์ด 1์ด์์ผ๋ก ์ด๋ฅผ ๊ธฐ์ตํ๋๋ก ํ์.
๐ก ๊ตฌํ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ์ ์์
Q1. ์ํ์ข์ฐ
์ฌํ๊ฐ A๋ N * Nํฌ๊ธฐ์ ์ ์ฌ๊ฐํ ๊ณต๊ฐ์์ ์์๋ค. ์ด๊ณต๊ฐ์ 1*1 ํฌ๊ธฐ์ ์ ์ฌ๊ฐํ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ๊ฐ์ฅ ์ผ์ชฝ ์ ์ขํ๋ (1,1)์ด๋ฉฐ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ ์ขํ๋ (N, N)์ ํด๋นํ๋ค. ์ฌํ๊ฐ A๋ ์ํ์ข์ฐ ๋ฐฉํฅ์ผ๋ก ์ด๋ํ ์ ์์ผ๋ฉฐ ์์ ์ขํ๋ ํญ์(1,1)์ด๋ค. ์ฐ๋ฆฌ ์์ ์ฌํ๊ฐ A๊ฐ ์ด๋ํ ๊ณํ์ด ์ ํ ๊ณํ์๊ฐ ๋์ฌ์๋ค.
๊ณํ์์๋ L, R, U, D ์ค ํ๋์ ๋ฌธ์๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ์ ํ์๋ค. ๊ฐ ๋ฌธ์์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ๋ค.
L : ์ผ์ชฝ์ผ๋ก ํ์นธ ์ด๋
R : ์ค๋ฅธ์ชฝ์ผ๋ก ํ์นธ์ด๋
U : ์๋ก ํ์นธ ์ด๋
D : ์๋๋ก ํ์นธ ์ด๋
์ด๋ ์ฌํ๊ฐ A๊ฐ N*N ํฌ๊ธฐ์ ์ ์ฌ๊ฐํ ๊ณต๊ฐ์ ๋ฒ์ด๋๋ ์์ง์์ ๋ฌด์๋๋ค. ๊ณํ์๊ฐ ์ฃผ์ฌ์ก์ ๋ ์ฌํ๊ฐ A๊ฐ ์ต์ข ์ ์ผ๋ก ๋์ฐฉํ ์ง์ ์ ์ขํ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
* ์ ๋ ฅ ์กฐ๊ฑด
- ์ฒซ์งธ์ค์ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ N์ด ์ฃผ์ด์ง๋ค.(1<= N <= 100)
- ๋์งธ์ค์ ์ฌํ๊ฐ A๊ฐ ์ด๋ํ ๊ณํ์ ๋ด์ฉ์ด ์ฃผ์ด์ง๋ค.(1<= ์ด๋ํ์ <= 100)
* ์ถ๋ ฅ ์กฐ๊ฑด
- ์ฒซ์งธ ์ค์ ์ฌํ๊ฐ A๊ฐ ์ต์ข ์ ์ผ๋ก ๋์ฐฉํ ์ง์ ์ ์ขํ (X, Y)๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ์ถ๋ ฅํ๋ค.
* ์ ๋ ฅ ์์
5
R R R U D D
* ์ถ๋ ฅ ์์
3 4
[๋ฌธ์ ์์ด๋์ด]
์์ง์์ ๋ค์๊ณผ ๊ฐ์ด ๋ํ๋ผ ์ ์๋ค. ๋ค์ ๋งํ์ง๋ง ์ผ๋ฐ์ ์ธ ์ขํ์ ๋ค๋ฆ์ ์ฃผ์ํ์.(ํญ์ ํท๊ฐ๋ฆผใ ใ )
move_types = ['U', 'D', 'L', 'R']
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
[์ฝ๋]
n = int(input())
plans = input().split()
# ์ํ์ข์ฐ์ ๋ฐ๋ฅธ ์ด๋๋ฐฉํฅ
move_types = ['U', 'D', 'L', 'R']
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
# ์์ ์ขํ
x, y = 1, 1
# ์ด๋ ๊ณํ์ ๋ฐ๋ผ ์์ง์ธ๋ค
for plan in plans:
# ์ด๋๋ฐฉํฅ ํ์ธ
for i in range(len(move_types)):
if plan == move_types[i]:
nx = x + dx[i]
ny = y + dy[i]
# ๊ณต๊ฐ์ ๋ฒ์ด๋๋ ๊ฒฝ์ฐ ๋ฌด์
if nx<1 or ny<1 or nx>n or ny>n:
continue
# ์ด๋์ํ
x, y = nx, ny
print(x,y)
Q2. ์๊ฐ
์ ์ N์ด ์ ๋ ฅ๋๋ฉด 00์ 00๋ถ 00์ด๋ถํฐ N์ 59๋ถ 59์ด๊น์ง์ ๋ชจ๋ ์๊ฐ ์ค์์ 3์ด ํ๋๋ผ๋ ํฌํจ๋๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค, ์๋ฅผ ๋ค์ด 1์ ์ ๋ ฅํ์ ๋ ๋ค์์ 3์ด ํ๋๋ผ๋ ํฌํจ๋์ด ์์ผ๋ฏ๋ก ์ธ์ด์ผํ๋ ์๊ฐ์ด๋ค.
- 00์ 00๋ถ 03์ด
๋ฐ๋ฉด ๋ค์์ 3์ด ํ๋๋ ํฌํจ๋์ด ์์ง ์์ผ๋ฏ๋ก ์ธ๋ฉด ์๋๋ ์๊ฐ์ด๋ค.
- 00์ 02๋ถ 25์ด
*์ ๋ ฅ์กฐ๊ฑด
- ์ฒซ์งธ์ค์ ์ ์ N์ด ์ ๋ ฅ๋๋ค (0<=N<=23)
*์ถ๋ ฅ ์กฐ๊ฑด
- 00์ 00๋ถ 00์ด๋ถํฐ N์ 59๋ถ 59์ด๊น์ง์ ๋ชจ๋ ์๊ฐ ์ค์์ 3์ด ํ๋๋ผ๋ ํฌํจ๋๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
*์ ๋ ฅ ์์
5
*์ถ๋ ฅ ์์
11475
[๋ฌธ์ ์์ด๋์ด]
์์ ํ์์ผ๋ก ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์์ 24*60*60 = 8640๋ฒ์ ๊ฒฝ์ฐ์ ์๊ฐ ์๋ค.
์ฃผ์์ ์์ ๋งํด๋ฏ์ด ํ์ด์ฌ์ 1์ด์ ์ด์ฒ๋ง๋ฒ์ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค๊ณ ํ์ผ๋ ์ด์ ๋๋ ์์ ํ์์ด ๊ฐ๋ฅํ๋ค. ๋๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ ์ด์ฉํด ์ฌ๋ฌ ๊ฒฝ์ฐ๋ก ๋นผ์ฃผ๋ ๊ฒ๋ณด๋ค๋ ์ ๋ถ ๋ฐ๋ณต๋ฌธ ์ฒ๋ฆฌํ์ฌ ๊ฐ๊ฒฐํ ์ฝ๋๋ฅผ ๊ฐ์ ธ๊ฐ๋ ๊ฒ์ด ์ข๋ค.
[์ฝ๋]
hour = int(input())
count = 0
for h in range(0, hour+1):
for m in range(60):
for s in range(60):
# ๋งค์๊ฐ ํ์ธ
if '3' in str(h) + str(m) +str(s):
count += 1
print(count)
๐ก ๊ตฌํ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์
Q1. ์์ค์ ๋์ดํธ
์์ค ์ ์์ ์ฒด์คํ๊ณผ ๊ฐ์ 8*8์ขํ ํ๋ฉด์ด๋ค. ์์ค ์ ์์ ํน์ ํ ํ ์นธ์ ๋์ดํธ๊ฐ ์์๋ค. ๋์ดํธ๋ ์ด๋ํ ๋ L์ ํํ๋ก๋ง ์ด๋ํ ์ ์์ผ๋ฉฐ ์ ์ ๋ฐ์ผ๋ก๋ ๋๊ฐ ์ ์๋ค. ๋์ดํธ๋ ํน์ ํ ์์น์์ ๋ค์๊ณผ ๊ฐ์ 2๊ฐ์ง ๊ฒฝ์ฐ๋ก ์ด๋ํ ์ ์๋ค.
1) ์ํ์ผ๋ก ๋์นธ ์ด๋ํ ๋ค์ ์์ง์ผ๋ก ํ์นธ ์ด๋
2) ์์ง์ผ๋ก ๋์นธ ์ด๋ํ ๋ค์ ์ํ์ผ๋ก ํ์นธ ์ด๋
์ด์ฒ๋ผ 8*8์ขํ ํ๋ฉด์์์ ๋์ดํธ ์์น๊ฐ ์ฃผ์ด์ก์ ๋ ๋์ดํธ๊ฐ ์ด๋ํ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ด๋ ์์ค์ ์ ์์์ ํ ์์น๋ฅผ ํํํ ๋๋ 1๋ถํฐ 8๋ก ํํํ๋ฉฐ, ์ด ์์น๋ฅผ ํํํ ๋๋ a๋ถํฐ h๋ก ํํํ๋ค. ์๋ฅผ ๋ค์ด ๋ง์ฝ ๋์ดํธ๊ฐ a1์ ์์ ๋ ์ด๋ํ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ c2,b3 ๋๊ฐ์ง ์ด๋ค. c2์ ์์นํด ์๋ค๋ฉด ๊ฒฝ์ฐ์ ์๋ 6๊ฐ์ง ์ด๋ค.
*์ ๋ ฅ์กฐ๊ฑด
- ์ฒซ์งธ์ค์ 8*8 ์ขํํ๋ฉด ์์์ ํ์ฌ ๋์ดํธ๊ฐ ์์นํ ๊ณณ์ ์ขํ๋ฅผ ๋ํ๋ด๋ ๋๋ฌธ์๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ด ์ ๋ ฅ๋๋ค. ์ ๋ ฅ๋ฌธ์๋ a1์ฒ๋ผ ์ด๊ณผ ํ์ผ๋ก ์ด๋ค์ง๋ค.
*์ถ๋ ฅ ์กฐ๊ฑด
- ์ฒซ์งธ ์ค์ ๋์ดํธ๊ฐ ์ด๋ํ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ์์ค.
*์ ๋ ฅ ์์
a1
*์ถ๋ ฅ ์์
2
[๋ฌธ์ ์์ด๋์ด]
์๋ฎฌ๋ ์ด์ ๋ฌธ์ ์ ํ์ด๋ค. ์ํ์ข์ฐ์ ๋น์ทํ ๋ฌธ์ ์ธ๋ฐ, ์ขํ์ค์ ์์ ์ฐจ์ด๊ฐ ์๋ค.
์์คํค ์ฝ๋๋ก 'a'๋ 97 ์ด๊ณ 'z'๋ 122์์ ์์๋์.
[์ฝ๋]
position = input()
# ์ด๋๋ฐฉํฅ ์ ์
move_col = [2, 2, -2, -2, 1, 1, -1, -1]
move_row = [1, -1, 1, -1, 2, -2, 2, -2]
# ์ด๋ ๊ฐ๋ฅํ ๋ฐฉํฅ์ ๊ฐฏ์ ๊ตฌํ๊ธฐ
count = 0
for i in range(len(move_col)):
next_col = ord(position[0]) + move_col[i]
next_row = int(position[1]) + move_row[i]
# ํด๋น ๋ฐฉํฅ์ผ๋ก ์ด๋ ๊ฐ๋ฅ ์ฌ๋ถ
if ord('a')<=next_col<=ord('h') and 1<=next_row<=8:
count += 1
print(count)
Q2. ๋ฌธ์์ด ์ฌ์ ๋ ฌ
์ํ๋ฉง ๋๋ฌธ์์ ์ซ์(0~9)๋ก๋ง ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ด ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค. ์ด๋ ๋ชจ๋ ์ํ๋ฉง์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ด์ด์ ์ถ๋ ฅํ ๋ค์ ๊ทธ ๋ค์ ๋ชจ๋ ์ซ์๋ฅผ ๋ํ ๊ฐ์ ์ด์ด์ ์ถ๋ ฅํฉ๋๋ค.
*์ ๋ ฅ์กฐ๊ฑด
- ์ฒซ์งธ์ค์ ํ๋์ ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ง๋๋ค,(1<=S์ ๊ธธ์ด<=10,000)
*์ถ๋ ฅ ์กฐ๊ฑด
- ์ฒซ์งธ ์ค์ ๋ฌธ์ ์์ ์๊ตฌํ๋ ์ ๋ต์ ์ถ๋ ฅํฉ๋๋ค.
*์ ๋ ฅ ์์
K1KA5CB7
*์ถ๋ ฅ ์์
ABCKK13
[๋ฌธ์ ์์ด๋์ด]
ํ์ด์ฌ์๋ ๋ฌธ์์ด ๊ตฌ์ฑ์ด ์ํ๋ฒณ์ธ์ง ํ์ธํด์ฃผ๋ isalpha()๋ผ๋ ํจ์๋ฅผ ์ ๊ณตํ๋ค.
์ฐธ๊ณ ๋ก isdigit()๋ ์ซ์ ๊ตฌ์ฑ์ธ์ง๋ฅผ ํ์ธํด์ฃผ๋ฉฐ, isalnum()์ ์ซ์ ํน์ ์ํ๋ฒณ์ธ์ง๋ฅผ ํ์ธํด์ค๋ค.
[์ฝ๋]
string = input()
alpha = []
number = 0
for s in string:
if s.isalpha():
alpha.append(s)
# ๋ชจ๋ ์ซ์๋ ๋ํ๋ค
else:
number += int(s)
# ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
alpha.sort()
print( "".join(alpha) + str(number))
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] BFS with Python (1) | 2021.05.22 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] DFS with Python (0) | 2021.05.22 |
[์๊ณ ๋ฆฌ์ฆ] ๊ทธ๋ฆฌ๋(ํ์๋ฒ) with Python (0) | 2021.05.20 |
์ ๊ทํํ์ (0) | 2021.05.19 |
[์๋ฃ๊ตฌ์กฐ] ์ฐ์ ์์ ํ, ํ (0) | 2021.05.19 |