2차원 공간 - 행렬
수학에서 0, 0 좌표는 좌측하단에서 시작하는데, 이와 다름.
흔히 아는 것과 정반대로, (y, x) 를 기억해야한다.
횡방향 움직임은 2번째 자리에, 종방향 움직임은 1번째 자리에.
방향벡터
LRUD 움직임 구현
# N 은 맵 크기 NxN
# D 는 움직임 방향. LRUD 중 하나.
# 크기 밖으로 나가면 무시
def main ():
N = int(input())
print("N = ", N)
D = list(input().split())
print("D = ", D)
dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
dir = ['L', 'R', 'U', 'D']
x, y = 1, 1
for move in D:
print(move)
nx = dx[dir.index(move)]
ny = dy[dir.index(move)]
if(x + nx >= 1 and y + ny >= 1):
x += nx
y += ny
print("(%d, %d)", x, y)
main()
# 방향에 주의할 것.
https://github.com/gogoonbuntu/2021CodingTest_Guhyeon1
체스판 나이트 이동가능 경로
# 8X8 체스판에서 나이트의 위치 P 입력받기 (ex: C2)
# 나이트의 이동가능 위치 수
def main():
P = input()
Moves = [(1, 2), (1, -2), (-1, 2), (-1, -2), (2, 1), (2, -1), (-2, 1), (-2, -1)]
x = ord(P[0])-ord('a')+1
y = int(P[1])
count=0
for Move in Moves:
if x+Move[1]<=8 and x+Move[1]>0 and y+Move[0]>0 and y+Move[1]<=8:
count+=1
print(Move)
print(count)
main()
https://github.com/gogoonbuntu/2021CodingTest_Guhyeon2
알파벳, 숫자 입력받기, 알파벳 정렬, 숫자 덧셈
# 문자열(숫자포함) 입력받으면, 알파벳은 순서정렬, 숫자는 다 더해서 마지막에 출력
# 마지막 부분을 간략하게 표현할 수 있을듯
# isalpha 함수 사용하면 됨.
num = 0
def func(i):
global num
ascii = ord(i)
if ascii >= ord('0') and ascii <= ord('9'):
num += int(i)
else:
return i
a = [i for i in list(map(func,sorted(input()))) if i]
s = ''
for i in a:
s+=i
if(num>0) : s+=str(num)
print(s)
https://github.com/gogoonbuntu/2021CodingTest_Guhyeon3
본문은 참조링크 를 기반으로 정리했습니다.
도움이 되셨다면 ♡공감 ↓광고클릭으로 저를 응원해주세요!!! :D
반응형
'개발 > Python & Flask' 카테고리의 다른 글
Python Bash Stdout 인코딩 / import 경로 설정 (0) | 2022.05.16 |
---|---|
코딩테스트 다시 준비 시작 - DFS&BFS (ft. 파이썬) (0) | 2022.02.24 |
코딩테스트 다시 준비 시작 - 탐욕법 (ft. 파이썬) (0) | 2022.02.03 |
코딩테스트 다시 준비 시작 ft. 파이썬 (0) | 2022.01.28 |
[Python] 윈도우 프로그램을 제작해보자 (pystray, tkinter) (0) | 2021.01.19 |