구현 : 시뮬레이션과 완전 탐색.
구현이란, 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정입니다.
흔히 알고리즘 대회에서 구현 문제란 ?
풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제를 지칭한다.완전탐색 : 모든 경우의 수를 주저 없이 다 계산하는 해결 방법
시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행
구현 예시
일반적으로 알고리즘 문제에서의 2차원 공간은 행렬(Matrix)의 의미로 사용된다.


요구사항대로 충실히 풀면된다.시뮬레이션 유형으로도 분류되고, 구현이 중요한 대표적인 문제 유형이다.n = int(input())
ns = list(input().split())
dx = [0,0,-1,1]
dy = [1,-1,0,0]
data = ["R","L","U","D"]
x,y = 0, 0
for n in ns:
for i in range(len(data)):
if ns == data[i]:
nx = x + dx[i]
ny = y + dy[i]
if nx < 0 or nx >= n or ny < 0 or ny >= n:
continue
x,y = nx,ny
print(x+1,y+1)

가능한 모든 시각의 경우를 하나씩 모두 세서 풀 수 있는 문제
하루는 86,400초이므로, 00시 00분 00초 부터 23시 59분 59초 까지의 모든 경우는 86,400가지 이다.
python은 1초에 2천만번 계산함.
따라서 단순히 시각을 1씩 증가하며 3이 포함 확인
이러한 유형은 완전탐색(Brute Forcing) 문제 유형이라고 한다.
가능한 경우의 수를 모두 검사해보는 탐색 방법을 의미.
h = int(input())
cnt = 0
for i in range(h+1):
for j in range(60):
for k in range(60):
if '3' in str(i) + str(j) + str(k):
cnt += 1
print(cnt)

전형적인 시뮬레이션 완탐 2차원 좌표를 이용하는 구현 문제이다.
n = input()
t = ['a','b','c','d','e','f','g','h']
x = int(n[1]) - 1
y = n[0]
for i in range(len(t)):
if y == t[i]:
y = i
dx = [2,-2,1,-1,2,-2,1,-1]
dy = [1,1,2,2,-1,-1,-2,-2]
cnt = 0
for i in range(8):
nx = x + dx[i]
ny = y + dy[i]
if nx < 0 or nx >= 8 or ny < 0 or ny >= 8:
continue
else:
cnt += 1
print(cnt)
단순히 t배열을 선언해서 값을 할당 받았었는데
ord(n[0]) - ord('a')
을 통해 해당값을 바로 가져오는 방법이 있다.

또한 dx,dy로 두배열을 선언해서 가져오는 방법만을 고수 했는데 튜플로도 가져올수 있다는 것을 인지하자.

수 = 정수를 의미 ex) 100 ,2200 , 700
숫자 = 0~9
요구사항대로 충실히 구현하면 되는 문제
문자열이 입력되었을 때 문자를 하나씩 확인한다.
결과적으로 리스트에 저장된 알파벳은 정렬해 출력하고, 합계를 뒤에 붙여 출력하면 정답.
data = input()
res = []
cnt = 0
for i in data:
if i.isalpha():
res.append(i)
else:
cnt += int(i)
res.sort()
print("".join(res) + str(cnt))
isalpha를 몰라서 배열로 다선언하거나 숫자를 제거해야하나라고 생각했었는데, 좋은 방법이 있었다.