문자열 s를 입력받아 p와 y의 개수(대, 소문자 구분 안함)가 같다면 True, 다르다면 False를 리턴
def solution(s):
p_cnt = 0
y_cnt = 0
for i in s:
if i == 'p' or i == 'P':
p_cnt += 1
elif i == 'y' or i == 'Y':
y_cnt += 1
if p_cnt == y_cnt:
return True
else: return False
for문을 통해 문자열 s의 문자 하나하나를 i에 대입하여 해당 문자가 p(P)일땐 p_cnt, y(Y)일땐 y_cnt를 1씩 더해
p_cnt와 y_cnt가 같다면 True, 다르다면 False를 리턴하도록 했다.
문자열로 된 배열 strings와 정수 n을 입력받아 strings 안의 각 문자열에서 인덱스 n의 알파벳 순서로 strings를 재정렬하고 만약 인덱스 n의 알파벳이 같다면 문자열의 오름차순으로 정렬하여 재정렬 된 문자열 리턴
def solution(strings, n):
answer = []
strings.sort()
answer = sorted(strings, key=lambda x : x[n])
return answer
처음에 각 문자열의 n번째 알파벳이 같을 때 문자열 전체의 오름차순으로 정렬하는 것을 생각하지 못하고 strings.sort()를 넣지 않았다.
배열을 문자열의 오름차순으로 sort해준 뒤 lambda식을 이용해서 인덱스 n의 오름차순으로 정렬해주면 문제에서 요구하는 답이 나온다.