문제 6319
다음의 결과와 같이 반목문을 이용해 단어의 순서를 거꾸로 해 반환하는 함수를 작성하고
그 함수를 이용해 회문(앞뒤 어느 쪽에서도 같은 단어, 말) 여부를 판단하는 코드를 작성하십시오.
[입력]
eye
[출력]
eye
입력하신 단어는 회문(Palindrome)입니다.
함수 : 반복문을 사용 >> 단어 거꾸로
함수를 이용해 회문 판단
이렇게라서 일단
1) 입력값을 위한 변수 선언
2) 글자를 거꾸로 반환하도록 for문을 반환하는 함수 작성
- 문자열도 더하기가 되니까, 누적해서 더해보자!
3) 누적해서 더한 결과랑 처음 입력값과 비교해서
4) 일치하는지 판단하자
라고 생각했다.
처음 짜본 코드는
S = input() #문자열을 넣으니까 따로 포맷팅 필요 X
def pal(S): #함수 정의
P = "" #더해나갈건데, 숫자가 아니고 문자열이니까 맨 처음엔 아무것도 없어야함
for i in ?? #여기를 잘 모르겠음...
P += i #""에 시작해서 i를 거꾸로 더해 나감
if S == P: #원래 단어 S와 거꾸로 더한 P를 비교
print(P)
print("입력하신 단어는 회문(Palindrome)입니다.")
else:
print(P)
print("입력하신 단어는 회문(Palindrome)이 아닙니다.")
이랬다.
글자를 거꾸로 하는 코드?가 있는가 해서 검색해보니까 reversed( )함수가 있더라고!
그래서 저걸 활용해서 다시 코드를 짜보았다.
S = input()
def pal(word):
reversed_S = ""
for i in S:
reversed_S = reversed_S + i
if S == reversed_S:
print(reversed_S)
print("입력하신 단어는 회문(Palindrome)입니다.")
else:
print(reversed_S)
print("입력하신 단어는 회문(Palindrome)이 아닙니다.")
음.,,,
reversed_S = ""
for i in S:
reversed_S = reversed_S + i
print(reversed_S)
[결과]
h
he
hel
hell
hello
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ㅠ
이럴 땐 구글링이지
그리고 또 역쉬나.. 내가 모르는 개념이 나왔다. ^^ 출처
S = input()
def pal(S):
reversed_S = S[::-1]
return reversed_S
if S == pal(S):
print(pal(S))
print("입력하신 단어는 회문(Palindrome)입니다.")
else:
print(pal(S))
print("입력하신 단어는 회문(Palindrome)이 아닙니다.")
반복문을 사용하라길래 당연히 for문이나 while문이 들어가야 하나 했는데, 없어도 되나보다...
그리고 문자열[::-1]은 뭘까...?
그리고 if문에서 판단할 때 함수의 결과값이랑 비교하는 거구만... 배웠다.
근데 진짜 문자열[::-1]과 반복문... 궁금하다ㅜㅜ 왜 이렇게 풀어야하는거지? if문은 이해가지만 함수가 이해가 안가네!
무튼 위의 코드로 Pass 하긴 했다.
근데 영 찜찜쓰
'Algorithm > SW Expert Amademy' 카테고리의 다른 글
| 6314. 파이썬 내장함수 연습문제 2 (0) | 2022.01.16 |
|---|---|
| 6313. 파이썬 내장함수 연습문제 1 (0) | 2022.01.16 |
| 6220. 파이썬 if문 연습문제 (0) | 2022.01.14 |
| 6207. 파이썬 연산자 연습문제 (0) | 2022.01.13 |
| 6204. 파이썬 변수 연습문제 (0) | 2022.01.10 |