일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 컬렉션 프레임웍
- 자바 로그 레벨
- 파이썬
- WinError5
- GIT
- Java
- 프로그래머스
- 머신러닝
- 알고리즘
- 사이킷런
- streamlit
- Python
- 컬렉션 인터페이스
- conda remove
- h2 데이타베이스
- URI 원칙
- 쓰레드 풀
- 셀레니움
- 사이킷런 회귀
- 오라클
- db
- openai
- 자바 열거형
- 스프링 부트3
- 스프링 부트
- 완주하지못한선수
- Selenium
- REST API
- oracle
- 차원증가
- Today
- Total
노트 :
[프로그래머스] 문자열 다루기 기본 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12918
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[문제 설명]
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요.
예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
[제한 사항]
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
- s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
[입출력 예]
s | return |
"a234" | false |
"1234" | true |
[내가 푼 방법]
def solution(s):
answer = True
if len(s) == 4 or len(s) == 6:
try:
int(s)
return answer
except:
answer = False
else:
answer = False
return answer
1. 주어진 문자열 s의 길이가 4 또는 6인지 체크한다.
2. s를 int로 형변환하였을 때, 오류가 없다면 True 값인 answer를 반환한다.
이때, s가 숫자가 아니라면 오류가 날 것이기 때문에 try ~ except 구문으로 처리한다.
3. 처음의 if 조건문이 참이 아니라면 무조건 False를 반환하도록 한다.
[마음에 든 방법]
def solution(s):
try:
int(s)
except:
return False
return len(s) == 4 or len(s) == 6
나와 같은 로직인데 깔끔하다.
1. 문자열 s를 형변환한다.
2. 오류가 나면 False를 반환한다.
3. try ~ except 구문을 빠져나왔으면, s의 길이가 4 또는 6인지 확인한다.
같은 로직을 적용해도 어느 순서로 적용하는 지, 로직 상 필요없는 부분은 없는 지 체크하는 것이 중요한 것 같다.
[기타 방법]
def solution(s):
return s.isdigit() and len(s) in (4, 6)
한 줄로 코드를 작성하였다.
1. 문자열 s에 isdigit 함수를 적용하여 숫자로 변환 가능한 지 확인한다.
2. 포함연산자를 이용하여 s의 길이가 4또는 6인지 확인한다.
코드가 깔끔하고 이해하기 쉬우며, 속도도 빠르다.
'Algorithm' 카테고리의 다른 글
선택 정렬 (Selection Sort) (0) | 2023.05.18 |
---|---|
[알고리즘] 알고리즘 설계 기법 (1) | 2023.02.02 |
[프로그래머스] 완주하지 못한 선수2 (0) | 2022.10.03 |
[프로그래머스] 완주하지 못한 선수 (0) | 2022.09.30 |
[프로그래머스] 내적 (0) | 2022.09.27 |