Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 컬렉션 프레임웍
- Python
- 자바 열거형
- 파이썬
- conda remove
- 프로그래머스
- 오라클
- 사이킷런 회귀
- 컬렉션 인터페이스
- oracle
- 스프링 부트
- 쓰레드 풀
- 차원증가
- 완주하지못한선수
- GIT
- 셀레니움
- 사이킷런
- Selenium
- REST API
- db
- openai
- 스프링 부트3
- 알고리즘
- h2 데이타베이스
- WinError5
- URI 원칙
- 자바 로그 레벨
- streamlit
- 머신러닝
- Java
Archives
- Today
- Total
노트 :
[프로그래머스] 문자열 다루기 기본 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12918
[문제 설명]
문자열 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 |