본문 바로가기

알고리즘

코딩 테스트 연습 28일

728x90

코딩 테스트 연습 28일


프로그래머스, 문자열 다루기 기본

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

📄 나의 코드

s = "123523²"

def solution(s):
    answer = False
    if (len(s) == 4 or len(s) == 6) and s.isdecimal():
        answer = True

    return answer

print(solution(s)

정규식으로 풀려다가 도저히 안풀려서 질의응답보고 힌트 받아 풀었다.

 

📄 공부할 만한 코드1

a = '3²'
print(a.isdigit()) # True
print(a.isdecimal()) # False
print(a.isnumeric()) # True

isdecimal라는 함수만 int로 변환가능한지 알려주는 함수 이므로, [0-9]를 제외한 특수문자는 예외로 처리한다.

 

📄 공부할 만한 코드2

len(s) in (4, 6)

문자열의 길이가 4 혹은 6일 때만 True반환하는 문제임으로 위와 같은 조건을 써주면 된다.

 

📄 공부할 만한 코드3

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

정규식 표현을 사용하기 위해 re를 import해주고!

  • ^ : 문자열 시작
  • $ : 문자열 끝
  • \d : 는 [0-9]를 의미함.
  • {4} {6} :은 반복되는 숫자를 의미한다.
  • | : or 또는

'알고리즘' 카테고리의 다른 글

코딩 테스트 연습 29일  (0) 2022.12.29
자료구조 3주차 숙제_2  (1) 2022.12.28
자료구조 3주차 숙제  (0) 2022.12.27
코딩 테스트 연습 27일  (0) 2022.12.27
코딩 테스트 연습 22일,23일,26일  (0) 2022.12.26