[프로그래머스] Level 1 문자열 문제

imyo·2020년 10월 8일
0

알고리즘

목록 보기
38/39
post-thumbnail

문자열 내 마음대로 정렬하기

Python Code

def solution(strings, n):
    return sorted(sorted(strings), key=lambda x:x[n])

다른 사람의 풀이 + 새로 알게 된 점

sorted를 두 번하지 않고 key 인자에 문자열을 넣으면 전체 문자열 순으로 정렬이 된다고 한다.

return sorted(strings, key=lambda str: (str[n], str))

문자열 내 p와 y의 개수

Python Code

def solution(s):
    return s.count('p')+s.count('P') == s.count('y')+s.count('Y')

다른 사람의 풀이 + 새로 알게 된 점

lower나 upper 함수를 이용하여 s를 소문자 또는 대문자로 통일한 후 count하는 풀이가 있었다.


문자열 내림차순으로 배치하기

Python Code

def solution(s):
    return ''.join(sorted(s, reverse = True))

문자열 다루기 기본

Python Code

import re
def solution(s):
    p = re.compile('[0-9]')
    for i in s:
        if not p.match(i):
            return False
    return len(s) == 4 or len(s) == 6

다른 사람의 풀이 + 새로 알게 된 점

isdigit이라는 함수를 쓰면 숫자인지 판별할 수 있다고 한다.

정규표현식을 더 간단하게 쓴 풀이도 있었다.

return bool(re.match("^(\d{4}|\d{6})$", s))

^와 $는 문자열의 처음과 끝을, \d는 숫자를, {숫자}는 반복횟수를 의미한다.
참고: 정규 표현식

이밖에 try, except의 예외 처리를 이용하여 int(s)했을 때 예외가 발생하면 False를 리턴하도록하는 풀이가 있었다.


서울에서 김서방 찾기

Python Code

def solution(seoul):
    return '김서방은 %d에 있다'%seoul.index('Kim')
profile
(●⁰౪⁰●)

0개의 댓글