※ 모든 문제의 저작권은 SW Expert 아카데미에 있습니다. 학습 기록용으로 문제시 삭제하겠습니다.
6232. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 4. 문자열 1
다음의 결과와 같이 회문(앞뒤 어느 쪽에서도 같은 단어, 말) 여부를 판단하는 코드를 작성하십시오.
입력_
madam
출력_
madam
입력하신 단어는 회문(Palindrome)입니다.
[문제 풀이]
'''방법1'''
# 입력받기
input_str = input()
# 문자열 길이를 2로나눠 몫만 변수에 저장
cnt = len(input_str) // 2
# 입력받은 문자열 출력
print(input_str)
for i in range(cnt):
# 첫번째 문자와 마지막 문자를 비교해 다르면 회문x
if input_str[i] != input_str[-i-1]:
print('입력하신 단어는 회문(Palindrome)이 아닙니다.')
break
# 같으면 회문
else:
# i가 cnt-1이면 반복문을 다 돌고도 같다는 것이므로 출력
if i == cnt-1:
print('입력하신 단어는 회문(Palindrome)입니다.')
'''방법2'''
# 함수 생성
def check_pali(str):
# 반복문을 통해 문자열 길이를 2로나눈 몫만큼 반복
for i in range(len(str)//2):
# 첫번째 문자와 마지막 문자를 비교해 참,거짓으로 리턴
if str[i] != str[-i-1]:
return False
return True
# 입력받아 변수에 저장
input_str = input()
# 문자 출력
print(input_str)
# 참이면 회문, 거짓이면 회문아님 출력
if check_pali(input_str):
print('입력하신 단어는 회문(Palindrome)입니다.')
else:
print('입력하신 단어는 회문(Palindrome)이 아닙니다.')
6239. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 4. 문자열 2
다음과 같이 문장을 구성하는 단어를 역순으로 출력하는 프로그램을 작성하십시오.
입력_
A better tomorrow
출력_
tomorrow better A
[문제 풀이]
# 리스트로 저장하되 스플릿을 사용해 띄어쓰기로 끊어 저장
word = list(input().split(' '))
# 언팩을 사용해 리스트에서 꺼내 뒤부터 출력
print(*word[::-1])
6241. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 4. 문자열 3
다음의 결과와 같이 임의의 URL 주소를 입력받아 protocol, host, 나머지(path, querystring, ...)로
구분하는 프로그램을 작성하십시오.
입력_
http://www.example.com/test?p=1&q=2
출력_
protocol: http
host: www.example.com
others: test?p=1&q=2
[문제 풀이]
# 방법1
# :을 삭제하고 /로 끊어 리스트로 저장
word = input().replace(':', '').split('/')
# 형식에 맞게 출력
print(f'protocol: {word[0]} \nhost: {word[2]} \nothers: {word[3]}')
# 방법2
word = input()
# 입력받은 문장에서 슬라이싱을 활용
protocol = word[ : word.find('://')] # '://'전까지 저장
host = word[word.find('://')+3 : word.rfind('/')] # '://'에 3을 더해 그 이후부터 오른쪽에서 '/'전까지 저장
others = word[word.rfind('/')+1 :] # 오른쪽에서 '/'부터 끝까지 저장
# 형식에 맞게 출력
print(f'protocol: {protocol} \nhost: {host} \nothers: {others}')
6678. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 4. 문자열 4
다음의 결과와 같이 여러 문장을 입력받아 대문자로 변환해 출력하는 프로그램을 작성합니다.
아무 것도 입력하지 않고 엔터만 입력하면 입력이 종료됩니다.
입력_
Hello World
hello world
Python
출력_
>> HELLO WORLD
>> HELLO WORLD
>> PYTHON
[문제 풀이]
for i in range(3):
word = input()
print('>>', word.upper())
6243. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 4. 문자열 5
사용자가 입력한 문장에서 공백을 이용해 단어들을 구분하고,
중복된 단어없이 단어를 콤마(,)로 구분해 사전순으로 출력하는 프로그램을 작성하십시오.
입력_
산 하늘 강 바다 하늘 강 들
출력_
강,들,바다,산,하늘
[문제 풀이]
# 띄어쓰기로 끊어서 리스트로 저장
word = input().split(' ')
# 방법1
# set을 사용해 중복을 제거하고 sorted로 정렬, join으로 ,로 나눠 출력
print(','.join(sorted(set(word))))
# 방법2
# 딕셔너리를 사용해 중복을 제거하고 키만 리스트로 저장
word = list(dict.fromkeys(word))
print(','.join(sorted(word)))
6248. [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 4. 문자열 7
다음 결과와 같이 문자열을 입력하면 짝수 인덱스를 가진 문자들을 출력하는 프로그램을 작성하십시오.
입력_
H1e2l3l4o5w6o7r8l9d
출력_
Helloworld
[문제 풀이]
# 입력
word = input()
# 2씩 인덱스를 증가시키며 출력
print(word[::2])