[SWEA 26389] 여행 [Python]
2026. 5. 3. 23:47ㆍPS 풀이/SW Expert Academy
문제
https://swexpertacademy.com/main/code/problem/problemDetail.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
요약
- 각 방향에 대해, 존재하는 방향의 반대 방향(N-S, E-W) 도 존재하는지 검증하자.
풀이 과정
방향 존재 여부와 원점 복귀 조건
각 날짜에는 N, S, E, W 중 하나의 방향으로 양의 정수 거리만큼 이동합니다.
이동 거리의 최대 제한이 없으므로, 원점으로 돌아오기 위해서는 다음과 같이 이동 방향의 반대 방향이 존재해야 합니다.
- N 또는 S가 존재할 경우 반대 방향도 존재해야 한다.
- E 또는 W가 존재할 경우 반대 방향도 존재해야 한다.
거리는 양의 정수만큼 자유롭게 정할 수 있기 때문입니다.
다음과 같이 각 방향이 존재하는지 확인합니다.
from collections import defaultdict
def solve():
direction_exists = defaultdict(bool)
for a in A:
direction_exists[a] = True
return (
direction_exists["N"] == direction_exists["S"]
and direction_exists["E"] == direction_exists["W"]
)
조건을 만족해 원점으로 복귀 가능 여부를 판별하면 됩니다.
성능 분석
- 시간 복잡도: $O(N)$
- 제출결과: Pass / 71ms / 53,760kb
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/SW%20Expert%20Academy/D3/26389.py
problem-solving/SW Expert Academy/D3/26389.py at main · rogi-rogi/problem-solving
Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.
github.com
'PS 풀이 > SW Expert Academy' 카테고리의 다른 글
| [SWEA 26009] 곱의 합 [Python] (0) | 2026.05.05 |
|---|---|
| [SWEA 26502] 쉬운 삼각형 [Python] (0) | 2026.05.02 |
| [SWEA 19004] 점프 놀이 [C/C++] (2) | 2024.01.05 |
| [SWEA 19003] 팰린드롬 문제 [C/C++] (0) | 2024.01.02 |
| [SWEA 19113] 식료품 가게 [C/C++] (0) | 2024.01.01 |