코딩테스트/백준 online Judge
[python] 백준 알고리즘 17413번 단어 뒤집기 2, 구현 문자열 합치기
polarcompass
2021. 10. 17. 22:52
728x90
https://www.acmicpc.net/problem/17413
17413번: 단어 뒤집기 2
문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('<', '>')로만 이루어져
www.acmicpc.net
S = input()
temp = ''
ans = ''
for i in S:
if i == ' ':
if '<' not in temp:
ans += temp[::-1] + i
temp = ''
else:
temp += i
elif i == '<':
ans += temp[::-1]
temp = ''
temp += i
elif i == '>':
ans += temp + i
temp = ''
else:
temp += i
ans += temp[::-1]
print(ans)
입력 예제1
<ab cd>ef gh<ij kl>
출력 예제1
<ab cd>fe hg<ij kl>
입력 예제2
<int><max>2147483647<long long><max>9223372036854775807
출력 예제2
<int><max>7463847412<long long><max>7085774586302733229
파이썬에 익숙하신 분들은 이러한 문자열 합치기 방법이 낯설 수 있다.
'S' * 8을 입력하면 파이썬 내부적으로 알아서 아래 코드를 돌려주기 때문이다.
word = ''
for _ in range(8):
word += 'S'
하지만 파이썬 이외의 언어들은 이렇게 작동하지 않는다.
프론트엔드 언어인 Javascript에서 조차도 C/C++과 같이 위와 같은 방법으로 돌려주어야 한다.
가장 먼저 분기점이 되는 특수 문자를 기준으로 if - elif - else 을 만들어준다.
for i in S:
if i == ' ':
pass
elif i == '<':
pass
elif i == '>':
pass
else:
pass
이제 여기에 예제들을 대입해보면서
한글자 한글자씩 왔다갔다하며 머릿속으로 대입해보고
본인이 맞겠다 싶은 코드를 작성해 나가면 된다.
728x90