[백준] 17413번 단어 뒤집기 2

거북이·2023년 3월 12일
0

백준[실버3]

목록 보기
57/92
post-thumbnail

💡문제접근

  • 문자열을 다루는 문제였다. 문자열에 대한 문제에 대해서 조금 헤매는 경향이 있는 것 같다.
  • 태그의 사용유무, 알파벳과 숫자, 그 외의 기호 등에 따라서 조건문을 달리 해서 겨우 해결할 수 있었다.

💡코드(메모리 : 33604KB, 시간 : 112ms)

import sys
input = sys.stdin.readline

i = 0
start = 0
String = list(input().strip())
while i < len(String):
	# 여는 괄호가 나왔다면?(=괄호 안에 들어있는 문자들의 순서는 바뀌면 안된다.)
    if String[i] == "<":
        i += 1
        while String[i] != ">":
            i += 1
        i += 1
    # 만약 문자나 숫자라면?
    elif String[i].isalnum():
        start = i
        # 문자열의 길이를 넘어서지 않고 문자나 숫자가 나올 때까지
        while i < len(String) and String[i].isalnum():
            i += 1
        # 만약 문자나 숫자가 나오지 않고 공백이 나오게 된다면 문자열을 뒤집어준다.
        temp = String[start:i]
        temp = temp[::-1]
        # 뒤집은 문자열을 기존의 문자열과 대체하여 바꿔준다.
        String[start:i] = temp
    else:
        i += 1

for i in String:
    print(i, end="")

📌 Python에서 유용하게 사용되는 기본 내장 함수 정리

①. isalpha 함수

  • 문자열의 구성이 모두 알파벳인지에 대해서 확인하는 함수다. 만약 문자열에 숫자나 공백이 포함되어 있으면 False를 반환한다.

②. isdigit 함수

  • 문자열의 구성이 모두 숫자인지에 대해서 확인하는 함수다.

③. isalnum 함수

  • 문자열이 항상 알파벳만 있거나 숫자만 있지는 않다. 숫자와 문자가 혼용되는 경우가 훨씬 많다. 위의 함수의 기능 두 가지를 혼용해서 문자열이 알파벳 또는 숫자인지 확인하는 방법으로 이 함수가 사용된다.
  • Result : 위 ① ~ ③번의 함수의 결과는 모두 boolean의 타입 형태로 True/False로 반환된다.

💡소요시간 : 47m

0개의 댓글