파이썬 짝수 문자 출력 - paisseon jjagsu munja chullyeog

문제 내용

입력 문자열을 아래와 같이 변환해서 출력하는 프로그램을 작성하시오.

입력문자열: 파이썬은재밌는놀이이다

출력문자열: 파#썬#재#는#이#다

문제 풀이

text = input("문자를 입력하시오: ") for i in range(len(text)): if i%2==1: print('#',end='') else: print(text[i],end='')

코드 결과

#입력예시 문자를 입력하시오: 파이썬독학은코딩대학 파#썬#학#코#대#

나와 어울리는 개발자 유형 찾기

MBTI로 알아보는 개발자 유형 내 안의 개발자를 찾아서...⭐

comu.codeuniv.kr

어떠한 문자열이 주어졌을 때,

주어진 문자열의 가운데만 뽑아서 출력하는 문제였다.

1. 문자열의 길이가 홀수인 경우

ex) spoon

-> o

2.문자열의 길이가 짝수인 경우

ex) iPhone

-> ho 

일단 문제를 처음 보았을 때,

문자열의 길이를 홀수/짝수로 나누어서 주고 있기 때문에 

각각의 경우에 따라 분기하는 것이 필요하다고 생각했다.

def string_middle(str): length = len(str) #인자로 받은 문자열의 길이 isOdd = length % 2 #나머지가 1이면 홀수인지?에 대한 값은 True, 0이면 짝수로써 False 값

여기까지 진행하여, 현재 주어진 문자열이 홀수 길이인지 짝수 길이인지를 구별해주었다.

남은 것은, 각 경우에 가운데 글자를 어떻게 정의할 것인가였다.

def string_middle(str): length = len(str) #인자로 받은 문자열의 길이 isOdd = length % 2 #나머지가 1이면 홀수인지?에 대한 값은 True, 0이면 짝수로써 False 값 answer = '' if isOdd: answer = s[math.floor(length/2)] else: start = int(length/2 - 1) end = int(length/2 + 1) answer = s[start:end] #짝수는 반으로 나누었을 때, 대칭형태로 양분되어서 가운데라는 개념을 잡기 위해서 문자열 길이의 반을 기준으로 플러스마이너스 1씩 범위를 부여해준다. return answer

아래의 코드는 원리는 동일하지만 str의 길이가 홀수인지 짝수인지 판별할 필요도 없이 한 줄로 글자를 양분하는 코드이다.

def string_middle(str): return str[(len(str)-1)//2:len(str)//2+1] # 내가 쓴 코드는, index를 구할 때 나머지는 버리기 위하여 math.floor 함수를 썼는데, # // 연산자를 사용한다면 굳이 import math 과정이 필요없다. # 만약, 글자길이가 5인 문자열이었다면, # str[x:y]라고 하였을 때, # x가 2 # y가 3으로써, 눈으로 보기에도 가운데의 범위만 뽑아낸다. # 만약, 글자 길이가 4인 문자열이었다면, # str[1,3]으로 범위를 한정지어 추출하게 된다.

코딩도장 파이썬 심사문제 11.9의 답안입니다.

문제

표준 입력으로 문자열 두 개가 각 줄에 입력됩니다(문자열의 길이는 정해져 있지 않음). 첫 번째 문자열에서 인덱스가 홀수인 문자와 두 번째 문자열에서 인덱스가 짝수인 문자를 연결하여 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 연결 순서는 첫 번째 문자열, 두 번째 문자열 순입니다. 그리고 0은 짝수로 처리합니다.

________________
________________
________________

입력
python
python
결과
yhnpto

입력
apple
strawberry
결과
plsrwer

인덱스는 여러개인 element를 하나하나 지칭할 때 사용되며 이 형태는 리스트나 튜플 아니면 위 예시와 같이 단어를 글자 단위로 쪼갤때도 사용될 수 있습니다. 인덱스는 앞에서부터 1이 아닌 0으로 시작되기 때문에 정답처럼 b[0::2] 형태로 사용되는 것입니다. 변수 a는 홀수만, b는 짝수만이므로 시작숫자는 각각 다르게 지칭해주고 증가폭은 2로 지정을 해주면 a는 인덱스1,3,5의 글자를 b는 인덱스 0,2,4순으로 글자를 가져옵니다.
그리고 이를 print문에서 합쳐주면 정답이 완성됩니다.

Python

by 비전공자 기록광 2020. 7. 14.

반응형

표준 입력으로 문자열 두 개가 각 줄에 입력됩니다. (문자열의 길이는 정해져 있지 않음) 첫 번째 문자열에서 인덱스가 홀수인 문자와 두 번째 문자열에서 인덱스가 짝수인 문자를 연결하여 출력하는 프로그램을 만드세요. 연결 순서는 첫 번재 문자열, 두 번째 문자열 순입니다. 그리고 0은 짝수로 처리합니다.

문제

1

2

3

________________

________________

________________

cs

입력

python

python

결과

yhnpto

입력

apple

strawberry

결과

plsrwer

1

2

3

x=input()[1::2]

y=input()[::2]

print(x+y)

cs

반응형

'Python' 카테고리의 다른 글

코딩도장_파이썬 심사문제 13.7 (온라인 할인 쿠폰 시스템 만들기)  (0)코딩도장_파이썬 심사문제 12.5 (딕셔너리에 게임 능력치 저장하기)  (0)코딩도장_파이썬 심사문제 11.8 (리스트의 마지막 부분 삭제하기)  (0)코딩도장_파이썬 심사문제 10.5 (range로 튜플 만들기)  (0)코딩도장_파이썬 심사문제 9.4 (여러 줄로 된 문자열 사용하기)  (0)
2020.07.15
2020.07.14
2020.07.14
2020.07.13
2020.07.13

태그

심사문제11, 심사문제11.9, 코딩도장, 코딩도장심사문제, 코딩도장파이썬

관련글

  • 코딩도장_파이썬 심사문제 13.7 (온라인 할인 쿠폰 시스템 만들기)
  • 코딩도장_파이썬 심사문제 12.5 (딕셔너리에 게임 능력치 저장하기)
  • 코딩도장_파이썬 심사문제 11.8 (리스트의 마지막 부분 삭제하기)
  • 코딩도장_파이썬 심사문제 10.5 (range로 튜플 만들기)

댓글0

    비밀글

    Toplist

    최신 우편물

    태그