λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μ•Œκ³ λ¦¬μ¦˜ 문제 풀이

[μ΄μ½”ν…Œ] μ™•μ‹€μ˜ λ‚˜μ΄νŠΈ

by syLim___ 2023. 2. 22.
728x90

좜처: 이것이 취업을 μœ„ν•œ μ½”λ”©ν…ŒμŠ€νŠΈλ‹€ with 파이썬 (λ‚˜λ™λΉˆ)

https://www.youtube.com/watch?v=2zjoKjt97vQ&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=2

 

문제

  • 행볡 μ™•κ΅­μ˜ μ™•μ‹€ 정원은 체슀판과 같은 8*8μ’Œν‘œ ν‰λ©΄μž…λ‹ˆλ‹€.  μ™•μ‹€ μ •μ›μ˜ νŠΉμ •ν•œ ν•œ 칸에 λ‚˜μ΄νŠΈκ°€ μ„œ μžˆμŠ΅λ‹ˆλ‹€. λ‚˜μ΄νŠΈλŠ” 맀우 μΆ©μ„±μŠ€λŸ¬μš΄ μ‹ ν•˜λ‘œμ„œ 맀일 λ¬΄μˆ μ„ μ—°λ§ˆν•©λ‹ˆλ‹€.
  • λ‚˜μ΄νŠΈλŠ” 말을 타고 있기 λ•Œλ¬Έμ— 이동을 ν•  λ•ŒλŠ” L자 ν˜•νƒœλ‘œλ§Œ 이동할 수 있으며 정원 λ°–μœΌλ‘œλŠ” λ‚˜κ°ˆ 수 μ—†μŠ΅λ‹ˆλ‹€.
  • λ‚˜μ΄νŠΈλŠ” νŠΉμ • μœ„μΉ˜μ—μ„œ λ‹€μŒκ³Ό 같은 2κ°€μ§€ 경우둜 이동할 수 μžˆμŠ΅λ‹ˆλ‹€.
    1. μˆ˜ν‰μœΌλ‘œ 두 μΉΈ μ΄λ™ν•œ 뒀에 수직으둜 ν•œ μΉΈ μ΄λ™ν•˜κΈ°
    2. 수직으둜 두 μΉΈ μ΄λ™ν•œ 뒀에 μˆ˜ν‰μœΌλ‘œ ν•œ μΉΈ μ΄λ™ν•˜κΈ°
  • 이처럼 8*8 μ’Œν‘œ ν‰λ©΄μƒμ—μ„œ λ‚˜μ΄νŠΈμ˜ μœ„μΉ˜κ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ λ‚˜μ΄νŠΈκ°€ 이동할 수 μžˆλŠ” 경우의 수λ₯Ό 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ„Έμš”. μ™•μ‹€μ˜ μ •μ›μ—μ„œ ν–‰ μœ„μΉ˜λ₯Ό ν‘œν˜„ν•  λ•ŒλŠ” 1λΆ€ν„° 8둜 ν‘œν˜„ν•˜λ©°, μ—΄ μœ„μΉ˜λ₯Ό ν‘œν˜„ν•  λ•ŒλŠ” aλΆ€ν„° h둜 ν‘œν˜„ν•©λ‹ˆλ‹€.

 

문제 쑰건

  • 풀이 μ‹œκ°„: 20λΆ„
  • μ‹œκ°„μ œν•œ: 1초
  • λ©”λͺ¨λ¦¬ μ œν•œ: 128MB
  • μž…λ ₯ 쑰건: 첫째 쀄에 8*8 μ’Œν‘œ ν‰λ©΄μƒμ—μ„œ ν˜„μž¬ λ‚˜μ΄νŠΈκ°€ μœ„μΉ˜ν•œ 곳의 μ’Œν‘œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 두 문자둜 κ΅¬μ„±λœ λ¬Έμžμ—΄μ΄ μž…λ ₯λœλ‹€. μž…λ ₯ λ¬ΈμžλŠ” a1처럼 μ—΄κ³Ό ν–‰μœΌλ‘œ 이루어진닀.
  • 좜λ ₯ 쑰건: 첫째 쀄에 λ‚˜μ΄νŠΈκ°€ 이동할 수 μžˆλŠ” 경우의 수λ₯Ό 좜λ ₯ν•˜μ‹œμ˜€.

μž‘μ„± μ½”λ“œ

col=['a','b','c','d','e','f','g','h']
dx=[-1,1,-2,-2,-1,1,2,2]
dy=[-2,-2,-1,1,2,2,-1,1]

str = input()

#current position: x,y

for i in range(len(col)):
  if str[0]==col[i]:
    x = i
    
y = int(str[1])

#start counting
cnt=0
for i in range(len(dx)):
  nx = x+dx[i]
  ny = y+dy[i]
  if 1<=nx<=8 and 1<=ny<=8:
    cnt += 1

#print result
print(cnt)

 

κ°•μ˜ μ˜ˆμ‹œ μ½”λ“œ

κ°•μ˜μ—μ„œλŠ” λ°©ν–₯벑터λ₯Ό μ •μ˜ν•  λ•Œ dx, dy둜 λ‚˜λˆ„μ–΄ μ •μ˜ν•˜μ§€ μ•Šκ³  이차원 배열에 ν•œ λ²ˆμ— μ €μž₯ν–ˆλ‹€.

또 문자 a~hλ₯Ό μ•„μŠ€ν‚€μ½”λ“œμƒ 숫자둜 λ³€ν™˜, 'a'λ₯Ό λΉΌμ£Όκ³  1을 λ”ν•΄μ„œ ν•΄λ‹Ή λ¬Έμžκ°€ λͺ‡ 번째 column인지 λ°”λ‘œ κ΅¬ν–ˆλ‹€.

 

 

λ°©ν–₯벑터λ₯Ό 2차원 배열에 μ €μž₯ν•˜λ‹ˆκΉŒ 가독성이 훨씬 쒋은 것 κ°™λ‹€

728x90