구현이란, 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정이다.
흔히 알고리즘 대회에서 구현 유형의 문제란, 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제를 말한다.
구현 유형의 예시는 다음과 같다.
- 알고리즘은 간단한데, 코드가 길어지는 문제
- 실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제
- 문자열을 특정한 기준에 따라, 끊어 처리해야 하는 문제
- 적절한 라이브러리를 찾아서 사용해야 하는 문제
일반적으로 알고리즘 문제에서의 2차원 공간은 행렬(Matrix)의 의미로 사용된다.
5
R R R U D D
3 4
n = int(input())
data = list(input().split())
move_types = ['L', 'R', 'U', 'D']
steps = [(0, -1), (0, 1), (-1, 0), (1, 0)]
x, y = 1, 1
for i in range(len(data)):
for j in range(len(move_types)):
if data[i] == move_types[j]:
nx = x + steps[j][0]
ny = y + steps[j][1]
if 1 <= nx <= n and 1 <= ny <= n:
x, y = nx, ny
print(x, y)
5
11475
h = int(input())
res = 0
for i in range(0, h + 1):
for j in range(60):
for k in range(60):
if '3' in str(i) + str(j) + str(k):
res += 1
print(res)
a1
2
now = input()
row = int(now[1])
col = int(ord(now[0])) - int(ord('a')) + 1
steps = [(-2, -1), (-2, -1), (-1, -2), (-1, 2), (1, -2), (1, 2), (2, -1), (2, 1)]
res = 0
for step in steps:
n_row = row + step[1]
n_col = row + step[0]
if 1 <= n_row <= 8 and 1 <= n_col <= 8:
res += 1
print(res)
K1KA5CB7
ABCKK13
AJKDLSI412K4JSJ9D
ADDIJJJKKLSS20
data = input()
res = []
val = 0
for d in data:
if d.isalpha():
res.append(d)
else:
val += int(d)
res.sort()
if val != 0:
res.append(str(val))
print(''.join(res))