본문 바로가기
python

2020.08.24_알고리즘_문자열 다루기 기본

by 해맑은 코린이 2020. 8. 25.

오늘은 어쩌면 쉽게 풀어서 날먹이라고 생각할 수 있겠지만..^^ 그래도 함수의 기능을 써서 풀었으니 풀면서 쓴 

함수들을 정리하고자 ! 포스팅 !

 

 

문제는 간단하다! 하지만 이 기능들을 모른다면, 아마 어렵게 또 풀겠지!! 나도 알고 쓴 것과 모르고 검색해서 찾은 기능들을 정리해보자.

 

 

간단..? 해보이지만 우리는 여기서 if 에 쓰인 or, and , isdigit 라는 생소한 것들을 볼 수 있다.. ( 나만 생소한건지 모르겠지만 )

 

하나하나 정리해보자!

 

우리가 if 옆에 and랑 or 쓰는 경우는, 조건이 2가지를 같이 만족해야하거나, 또 2가지 중 하나만 만족해도 된다고 할 때 쓴다. 

 

or

란 영어의 말대로 어떠한 경우 또는 어떠한 경우가 참일때 쓰는 기능이다. 두 가지중 하나만 참이면 되는 것!

여기서 문자열의 s 길이가 4 또는 6일때, -- 이 곳에서 우리는 길이를 리턴하는 함수 len 과 함께

len(s) == 4 or len(s) == 6 로 써줄 수 있는 것이다!

 

and

란 마찬가지로 두가지가 모두 참일 때에 true가 되는 기능이다. 위의 알고리즘 문제에서 4또는 6인것과 동시에,

숫자로만 이루어진 배열이라면, True를 반환하게 되는데, 숫자로도 이루어져야하는 조건을 나는 and 로 써준 것이다!

(len(s) == 4 or len(s) == 6) and 다른 조건 -- 4 또는 6 일때 다른 조건 만족해줘라.

 

and 를 쓰게 되면, 우리는 

s 가 20이고, y 가 10이면 True를 리턴해줘라

이렇게 if를 중첩시키지 않아도,

 

 

and를 써서 이렇게 한줄에다가 적어 줄 수 있다. 굳이 식을 불필요하게 늘려주지 않아도 된다는 말! 

 

 

그럼 and 옆에 써준 isdigit 함수도 기능을 설명해보자.

 

isdigit

란 주어진 변수의 배열이 숫자로 이루어져있는지, 판별해주는 함수다. 배열이 숫자면 True를 , 아니면 False를 반환.

 

 

간단하게 코드를 작성해서 찍어보면,

 

 

 

 

 

이렇게 숫자일 경우는 True를 반환하고, False를 반환한다! 

 

 

추가+++

 

isalpha

는 위의 isdigit 와 반대로 문자열일 경우 True를, 숫자형일 경우 False 를 리턴한다!

 

 

 

마찬가지로 똑같은 변수 num 와 string을 써서 isapha 를 써보면, 

 

 

 

반대로 프린트를 해주게 된다! 

 

자 여기서 오늘 내가 쓴 기능들을 합쳐서 간단하게 문제를 풀었다!

 

 

다른 사람들의 풀이도 한번.. 볼까나

 

출처 - 프로그래머스

 

에그머니나... 겁나 어렵다... 여기서는 boolean 이라는 기능과 정규식을 사용하였는데... 정규식은 넘어렵긴하지만..일단 

이 코드만 해석해보자!

 

boolean - 줄여서 bool

은 모듈 re를 임포트 해주고 쓰는 함수인데, 두 개의 값을 비교해서 True, False를 리턴해주는 기능이다. 다른 반환값은 가지지 않는다.

비교 연산자 (=! 같지 않다 / == 같다 / >= 크거나 같다 / =< 작거나 같다 ) 이런 기능들과 같은!

 

 

정규식

으어..어렵다 어려워... 메타 문자들을 사용해서  하나의 식으로 표현한 것이다!

 

출처 - 점프 투 파이썬

아직은 내가 제대로 사용할 수 없어서 잘 정리되어있는 위키독스에서 잠시 캡쳐를..빌렸읍니다.. 자주 사용하는 문자 클래스만 가져오고 다른 기능들은 들고 오지 않았다..일단운.. 쥬륵 다음에는 나도 써봐야지..

 

 

이렇게 쓰이는 정규식과 bool을 통해 저 식을 해석하자면,

 

 // ^와 $ - 문자열의 처음과 끝을 의미하는 식 , ^ 은 not 이라는 뜻을 가졌으며, 위의 캡쳐본에서 보이듯이 숫자가 아닌 것과 매치 된다. 여기서 주어진 식들이 "" 로 문자열로 주어져서 ^ 를 쓴 것 같다.

\d - 숫자형을 비교해주어야해서 숫자를 의미하는 식을 쓴 것!

 {4}|{6} - 은 | 를 써서 4번과 6번을 찾는 기능이다!

 

이 모든 것이 조건을 만족하면 match 가 되어, bool로 True 와 False 로 리턴하게 된다...! 으으.. 정규식은 너무 어렵따.. 나도 언젠가는 쓸 수 있을까...ㅎㅁㅎ...

 

 

오늘의 간단한 포스팅 끝! 

 

 

 

 

댓글