라떼는말이야
[solved.ac 실버2] 15886_내 선물을 받아줘 2 (파이썬, 구현) 본문
밑의 사진을 클릭하면 문제 링크로 이동합니다
문제
욱제는 구사과의 열렬한 팬이다. 오늘 욱제는 구사과에게 선물을 전달해주려고 한다. 지난 며칠간의 관찰 끝에 욱제는 구사과의 이동 패턴을 모두 파악했다.
구사과가 있는 곳은 1×N 크기의 직사각형 지도로 나타낼 수 있으며, 1×1크기의 정사각형으로 나누어져 있다. 구사과의 위치는 (1, x)로 나타낼 수 있으며, (1, x)는 왼쪽에서부터 x번째 칸을 의미한다.
지도의 각 칸에는 E, W중의 한 문자가 쓰여져 있는데, 구사과는 이 문자를 이용해서 이동한다. 구사과의 위치가 (1, x)인 경우에 E가 쓰여져 있는 칸에 서 있었다면, (1, x+1)로, W의 경우에는 (1, x-1)로 순간이동한다. 구사과는 지치지 않기 때문에, 계속해서 이동한다.
욱제는 구사과의 위치를 모르기 때문에, 구사과가 이동을 시작하는 위치와 관계없이 선물을 주는 방법을 알아내려고 한다. 최소 몇 개의 칸 위에 선물을 놓으면, 구사과가 항상 선물을 가져가는지 구하는 프로그램을 작성하시오. 선물이 놓여진 칸에 구사과가 이동하면, 구사과는 항상 선물을 가져간다.
입력
첫째 줄에 골목길의 길이 N이 주어진다. (2 ≤ N ≤ 1,000)
둘째 줄에 길이 N짜리 구사과가 있는 곳의 지도가 주어진다.
지도에 쓰여 있는대로 이동했을 때, 지도를 벗어나는 경우는 없다.
출력
첫째 줄에 최소 몇 개의 칸에 선물을 놓아야 하는지 출력한다.
예제
나의 풀이
풀이를 떠올리기 쉽지 않아 실버 2인 것 같다.
어느 곳에서 시작하든 탐색을 하다보면 항상 EW가 있는 곳에서 머무르게 된다. (무한루프 발생)
EW의 개수를 세어주면 된다.
n, s = int(input()), input()
count = 0
for i in range(n-1):
if s[i:i+2]=='EW': count += 1
print(count)
'알고리즘 > 코딩 테스트' 카테고리의 다른 글
[solved.ac 골드5] 2212_센서 (파이썬, 정렬, 그리디) (0) | 2022.07.05 |
---|---|
[solved.ac 실버2] 1326_폴짝폴짝 (파이썬, BFS, DP) (0) | 2022.07.04 |
[solved.ac 골드5] 2023_신기한 소수 (파이썬, BFS) (0) | 2022.07.04 |
[solved.ac 골드4] 1520_내리막 길 (파이썬, DFS, DP) (0) | 2022.07.03 |
[solved.ac 실버1] 1052_물병 (파이썬, 구현, 그리디, 비트마스킹) (0) | 2022.06.30 |
[solved.ac 골드4] 1089_스타트링크 타워 (파이썬, 구현) (0) | 2022.06.29 |
[solved.ac 골드2] 1112_진법 변환 (파이썬, 수학, 구현, 정수론) (0) | 2022.06.26 |
[solved.ac 실버2] 2615_오목 (파이썬, 구현, 브루트포스) (0) | 2022.06.25 |