BOJ - 1259

Kaydenna92·2022년 5월 11일
0

Algorithm

목록 보기
3/36

문제보기

접근

-> 펠린드롬 : 어떤 단어를 뒤로 읽어도 같다면 펠린드롬
1. 입력을 받고, reverse(), reversed()를 사용해서 비교하면 될 것 같다고 생각

reversed() VS reverse()

  1. reverse
  • reverse는 'list' 타입에서만 제공하는 함수 -> dict, tuple, string X
  • list.reverse() 로 사용을 한다
  • reverse()는 리스트의 값을 반환하는 것이 아니라 변환해주는 것.
word = [3, 2, 1]
print(word.reverse()) // None 출력

word.reverse() # word 리스트의 순서를 뒤집어준다.
print(word) // [1, 2, 3]

reverse()는 리스트의 값을 반환하는 것이 아니라 변환해주는 것.
  1. reversed
  • 내장함수
  • list에서 제공하는 함수가 아니다.
  • reversed(word) 로 사용.
  • reversed object를 반환함.
  • 변환된 값을 출력하고싶으면? -> 원래의 형으로 변환해주면 된다.
  • list(reversed(list_word) 식으로..
  • reversed obeject를 string으로 변환하기 위해서는 다른 방법이 필요하다! -> join 함수!

example

list_word = ['1', '2', '3']
tuple_word = ('1', '2', '3')
dict_word = {0:'1', 1:'2', 2:'3'}
string_word = '123'


reversed(list_word) # <list_reverseiterator object at 0x102007400>
reversed(tuple_word) # <reversed object at 0x102007400>
reversed(dict_word) #< dict_reversekeyiterator object at 0x106a140e0>
					# key를 기준으로 reversed 된다
reversed(string_word) # <reversed object at 0x102007400>


#string(reversed(string_word)) -> 형변혼이 안된다....!

''.join(reversed(string_word)) # <- 로 해주면 321로 출력된다.

code

# 입력, 입력의 마지막에는 0이 입력된다고 함.
# while문을 이용해 입력받음
words = []
while True:
    word = input()
    if word == '0': # while 종료조건
        break
    else:
        words.append(word)

words = [list(word) for word in words] # 각 요소를 list형으로 변환

# 굳이 새로운 배열을 선언하여 reverse하고 추가할 필요가 없었음.
# 바로 비교할 수 있음.
# reverse() 와 reversed() 차이를 다시 한번 복습하자


# reverse_words = []
# for i in range(len(words)):
#     reverse_words.append(list(reversed(words[i])))

# for i in range(len(words)):
#     if words[i] == reverse_words[i]:
#         print('yes')
#     else:
#         print('no')


for i in range(len(words)):
    if words[i] == list(reversed(words[i])):
        print('yes')
    else:
        print('no')
profile
persistently

0개의 댓글