핀아의 저장소 ( •̀ ω •́ )✧

27일차(2020-12-14) 본문

Computer Science/코딩테스트_Python

27일차(2020-12-14)

_핀아_ 2020. 12. 14. 21:13

programmers.co.kr/learn/challenges?selected_part_id=12079

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

 

<문제 1> 프로그래머스) 문자열 다루기 기본

1
2
3
4
5
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 
예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다.
 
<제한 사항>
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
cs

 

<답안 1>

1
2
3
4
5
6
7
8
9
10
11
12
import re
 
def solution(s):
    if len(s) == 4 or len(s) == 6:
        try:
            int(s)
        except:
            return False
        else:
            return True
 
print(solution("a234"))
cs

-> 코드 실행에선 통과했으나 최종 결과에선 뭔가 부족한 코드로 나왔다.

 

<답안 1 : 다른 ver>

1
2
def solution(s):
    return s.isdigit() and (len(s) == 4 or len(s) == 6)
cs

isdigit() 함수를 통해 문자열을 숫자인지 확인 할 수 있다!

 

(언제나 느끼지만 내 긴 코드가 한 줄로 정리되는거 보면 신기하다.....)

 

 

<문제 2> 프로그래머스) 서울에서 김서방 찾기

1
2
3
4
5
6
7
String형 배열 seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하는 함수, solution을 완성하세요. 
seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
 
<제한 사항>
seoul은 길이 1 이상, 1000 이하인 배열입니다.
seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
Kim은 반드시 seoul 안에 포함되어 있습니다.
cs

 

<답안 2>

1
2
3
4
5
6
7
8
seoul = ["Jane""Kim"]
 
def solution(seoul):
    for i in range(len(seoul)):
        if seoul[i] == "Kim":
            return i
 
print("김서방은 {}에 있다".format(solution(seoul)))
cs

 

<답안 2 : 다른 ver>

1
2
3
4
5
6
7
seoul = ["Jane""Kim"]
 
def solution(seoul):
    num = seoul.index("Kim")
    return "김서방은 {}에 있다".format(num)
 
print(solution(seoul))
cs

 

 

'Computer Science > 코딩테스트_Python' 카테고리의 다른 글

29일차(2020-12-16)  (0) 2020.12.16
28일차(2020-12-15)  (0) 2020.12.15
26일차(2020-12-11)  (0) 2020.12.11
24일차(2020-12-09)  (0) 2020.12.09
23일차(2020-12-08)  (0) 2020.12.08
Comments