250x250
Notice
Recent Posts
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
관리 메뉴

일상 코딩

[python] 백준 알고리즘 17413번 단어 뒤집기 2, 구현 문자열 합치기 본문

코딩테스트/백준 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