[PYTHON] 문자열 거꾸로 역순 출력

  <대소문자 관계없이 거꾸로해도 같은 글자라면 "yes"를 아니라면 "no"를 출력하시오>

 

- 사용한 idle 프로그램 : visual studio

- visual studio에 파이썬 프로젝트를 만들어 그 하위에 "input.txt"파일을 생성해 input값을 자동으로 가져오게 함 (좀 더 자동화를 위해)

   >> 이 파일은 프로젝트 바로 밑에 만들어야한다. 만약, folder를 만든 후 그 안에 만든다면 읽어올 수 없어요. (이유는 몰라요)

   >> 만약, 직접 값을 넣고 싶다면 #1, #2 row는 없어도 상관없다.

  • 문제

주어진 문자 list중 역순으로 해도 똑같은지 확인하시오

  • 알고리즘 표현

 list의 문자를 하나씩 역순으로 바꾼다.

-> 원래의 문자와 같은지 검사한다.

-> 같다면 YES, 다르다면 NO를 출력한다.

 

  • input

list = [kyk, annyung, dfgfd, goodnight, heieh]

1
2
3
4
5
6
7
8
9
10
11
12
13
import sys
sys.stdin=open("input.txt","rt")  
##이 두 줄은 기본코드입니다.사실 없어도 되며, 직접 값을 넣어도 됩니다.
 
n=int(input()) # n개의 string문자가 있다.
 
for i in range(n): # n개만큼 반복됨
    string = input().lower() # 대소문자 구별을 없애기 위해, 모두 소문자로 바꿈
    if string == string[::-1]:
    # string을 거꾸로 바꾸는 코드입니다. string[마지막 index ~ -1]순으로 읽기때문에 거꾸로 문자를 바꿔준다.
        print("{} {}".format(i+1"같음"))
    else:
        print("{} {}".format(i+1"다름"))
  • 결과값

같음

다름

같음

다름

다름

  • 배울코드

  row #9 를 보면 if string == string[::-1] 라고 되어있습니다. 이것은 마지막 인덱스 ~ 첫번째인덱스(0)까지를 의미합니다.

즉, 마지막 인덱스를 생략한 코드 입니다.

만약 검사할 string이 abcde라면 len('abcde') = 5 = 마지막 인덱스이므로 [::-1] ==  [5:-1]과 같은뜻입니다.

즉, 5 -> 4 -> 3 -> 2 -> 1 -> 0 (-1은 포함하지 않기 때문) 순으로 읽어들이게 됩니다.

 

*)

어떤 피드백이든 댓글부탁드립니다.

더 좋은 방법이 있다면 알려주세요.

도움이 되셨다면, 하트버튼 또는 댓글부탁드려요~

요청할 문제가 있다면 댓글 부탁드려요!!!

*(

+ Recent posts