프로그래머스 파이썬 기초 트레이닝 :: 단순연산(+ * < >) 문제 모음
문제들
Day-23 (5) 날짜 비교하기Day-24 (4) l로 만들기
단순연산
대소비교 < , >
리스트, 문자열 추가 +, *
------------------------------------------------
Day-23 (5) 날짜 비교하기
문제 설명정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다.
만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요.
date1 date2 result
[2021, 12, 28] [2021, 12, 29] 1
[1024, 10, 24] [1024, 10, 24] 0
날짜로 이뤄진 리스트를 대소비교 해야하는 문제
일반 코드
내가 처음에 푼 방식
def solution(date1, date2):
for i in range(0,3) :
if date1[i] < date2[i] : return 1
elif date1[i] > date2[i] : return 0
return 0 년도, 월, 일을 일일이 비교해서 날짜를 비교하는 코드를 작성했다.
그런데, 리스트끼리 비교가 가능하다.
int 대소비교
리스트간 대소비교 연산자를 넣으면, 위와 같은 방식으로 작동한다.
def solution(date1, date2):
return int(date1 < date2)리스트1 < 리스트2 이렇게 대소비교를 하면
첫번째 요소끼리 차례대로 비교하고, 만약 같지 않은 부분에서 대소를 판단한다.
True / False로 리턴되기 때문에 int형변환을 해주는 것
------------------------------------------------
Day-24 (4) l로 만들기
문제 설명알파벳 소문자로 이루어진 문자열 myString이 주어집니다. 알파벳 순서에서 "l"보다 앞서는 모든 문자를 "l"로 바꾼 문자열을 return 하는 solution 함수를 완성해 주세요.
내가 쓴 코드
in 멤버연산자로 체크하고, 리스트에 추가해 문자열로 join
def solution(myString):
myList = list(myString)
for i in range(len(myList)) :
if myList[i] in "abcdefghijk":
myList[i] = 'l'
return ''.join(myList) 나는 하나하나의 값이 myList[i] in "abcdefghijk" 에 해당되는지 아닌지로 체크를 했다.
그런데, 알파벳도 단순한 대소비교로 해결이 가능하다.
알파벳 대소비교
알파벳 자체로 대소비교
def solution(myString):
answer = ''
for i in myString:
if i < "l": answer+='l'
else: answer+=i
return answeri < "l" 로 알파벳이 l보다 큰지 작은지 체크가 가능하다.
알파벳 - 간결 version
def solution(myString):
return ''.join(x if x > 'l' else 'l' for x in myString)ord(char) 숫자로 변환을 해서 비교도 가능하다.
ord(char) 숫자로 대소비교
def solution(myString):
answer = ''
for x in myString:
if ord(x)< ord("l"):
answer+="l"
else:
answer+=x
return answerord(x) < ord('l') 로 알파벳이 l보다 큰지 작은지 체크가 가능하다.
ord(char) 간결 version
def solution(myString):
return ''.join(['l' if ord(i) < ord('l') else i for i in myString])str.translate, maketrans
replace 메서드를 여러번 수행해야하는걸 한번에 처리해주는 메서드와 함수다.
def solution(myString):
return myString.translate(str.maketrans('abcdefghijk', 'lllllllllll'))str객체.translate(table)
이 table을 만드는 함수인 str.maketrans(x [, y [, z]])
maketrans로 테이블을 만들때 3번째 매개변수는 삭제를 의미함.

댓글
댓글 쓰기