일상 코딩
[python] 백준 알고리즘 17413번 단어 뒤집기 2, 구현 문자열 합치기 본문
728x90
https://www.acmicpc.net/problem/17413
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
'코딩테스트 > 백준 online Judge' 카테고리의 다른 글
[python] 백준 알고리즘 1966번 프린터 큐, 튜플 사용없는 풀이 (0) | 2021.11.06 |
---|---|
[python] 백준 알고리즘 1874번 스택 수열 풀이 (0) | 2021.11.05 |
[python] 백준 16675번 두 개의 손, 모듈러 연산 풀이 (0) | 2021.10.16 |
[python] 백준 온라인 알고리즘 2484번 주사위 네개 풀이 (0) | 2021.10.14 |
[python] 17406번 배열 돌리기 4 백준 온라인 알고리즘 풀이 (0) | 2021.10.12 |