Coding Test/[Python] Programmers lv1
[Python] Programmers lv1 문자열 다루기 기본, 문자열 내 p와 y의 개수
winCow
2021. 5. 8. 22:35
1. 문자열 다루기 기본
def solution(s):
num = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
if (len(s) == 4) | (len(s) == 6):
for i in s:
if i not in num:
answer = False
break
else:
answer = True
else:
answer = False
return answer
주어진 문자열을 체크하여 4글자, 혹은 6글자로 이루어지고, 모든 글자가 숫자인 경우에만 True를 반환해야 한다. 예외 처리를 이용해도 되는데, 에러를 내지 않고 해결하는 방법을 생각하다가 위와 같이 모든 문자열이 숫자인지를 체크하는 방식을 사용했다. 우선 문자열의 길이가 4 혹은 6인 경우에, 문자열의 모든 문자에 대해 0~9 사이의 숫자에 해당하는지를 체크한다. 해당하지 않는 경우에는 False를 반환하고, 반복문을 종료시키기 위해 break를 사용한다.
def solution(s):
if (len(s) == 4) | (len(s) == 6):
try:
int(s)
answer = True
except:
answer = False
else:
answer = False
return answer
예외 처리를 사용하는 경우에는 문자열을 하나하나 확인할 필요 없이, 문자열의 길이와 int 매소드를 적용 가능한지만 확인하면 된다.
2. 문자열 내 p와 y의 개수
def solution(s):
large = s.upper()
letterP = []
letterY = []
for i in large:
if i == "P":
letterP.append(i)
elif i == "Y":
letterY.append(i)
if len(letterP) == len(letterY):
answer = True
else:
answer = False
return answer
문자열 내의 p와 y의 개수를 비교하여 같은 경우에만 True를 반환해야 한다. 먼저, 대소문자 구분 없이 p와 y를 체크해야 하므로 주어진 문자열을 전부 대문자(혹은 소문자)로 변환한다. 빈 배열을 두 개 마련하고, 변환한 문자열의 문자를 모두 체크하여 p와 y를 각각 빈 배열로 옮긴 후, 길이를 비교한다.