수빈이는 여행을 좋아한다. 더 이상 지구에서 여행할 곳이 없어진 수빈이는 N차원 우주로 여행을 떠났다. 우주의 각 점은 좌표 N개로 이루어 지며, 각각의 좌표는 1부터 N까지 인덱스가 매겨져 있다.
수빈이는 원점(모든 좌표가 0인 곳)에서 여행을 시작하며, 아래와 같은 방법으로 움직인다.
수빈이가 여행 계획에서 고른 좌표 인덱스와, 좌표가 증가하는 방향으로 이동했는지, 감소하는 방향으로 이동했는지가 주어진다. 수빈이가 첫 번째 점과 마지막 점을 포함한 모든 점을 중복해서 방문하지 않게 방문할 수 있다면 1을, 아니면 0을 구하는 프로그램을 작성하시오.
set()
을 통해 이동 과정을 담아 이를 비교해나가며 풀었다.from sys import stdin
n = int(stdin.readline())
start = [0]*n
m = int(stdin.readline())
travel = list(map(int, stdin.readline().split()))
op = list(map(str, stdin.readline().rstrip()))
route = set()
route.add(tuple(start))
now = start
for i in range(m):
idx = travel[i] - 1
if op[i] == '+':
now[idx] += 1
else:
now[idx] -= 1
if tuple(now) not in route:
route.add(tuple(now))
else:
print(0)
exit()
print(1)
from sys import stdin
n = int(stdin.readline())
m = int(stdin.readline())
travel = list(map(int, stdin.readline().split()))
op = list(map(str, stdin.readline().rstrip()))
flag = True
path = [{}]
now = dict()
for i in range(m):
now[travel[i]] = now.get(travel[i],0) + (1 if op[i] == '+' else -1)
if now[travel[i]] == 0:
del now[travel[i]]
for cmp in path:
if now.items() == cmp.items():
print(0)
exit()
path.append(now.copy())
if now == {}:
print(0)
else:
print(1)
참... 생각하기 어렵다...