눈송이의 개발생활
[Programmers Lv.1]2016년 & 핸드폰 번호 가리기 (Python) 본문
문제 - 2016년
https://programmers.co.kr/learn/courses/30/lessons/12901
내 코드
day = ['FRI','SAT','SUN', 'MON','TUE','WED','THU']
end = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
def solution(a, b):
answer = day[(sum(end[:a-1]) + b-1) % 7]
return answer
다른 사람 풀이
import datetime
def solution(a, b):
date = 'MON TUE WED THU FRI SAT SUN'.split()
return date[datetime.datetime(2016, a, b).weekday()]
해결 방법
처음에는 day와 end 리스트를 만들지 않고 어떤 패턴을 찾으려고 노력했었다ㅎ
한동안 greedy나 dp만 풀다가 쉬어가는 느낌으로 프로그래머스를 푸는거라서 쉽게(?) 생각하지 않았었다.
하지만 1년이 12달밖에 없기 때문에 리스트를 만들고 풀었는데 바로 통과했다.
다 푼 뒤에 다른 사람들의 코드를 보니, datetime 라이브러리를 사용한 사람들이 많았다.
datetime 라이브러리가 존재하는 것을 이번에 배우고 사용하는 법도 대충 배웠다.
다음에 시간이 많으면 한 번 더 깊게 다양한 라이브러리를 봐야겠다.
문제 - 핸드폰 번호 가리기
https://programmers.co.kr/learn/courses/30/lessons/12948
내 코드
def solution(phone_number):
answer = phone_number.replace(phone_number[:-4], '*' * len(phone_number[:-4]))
return answer
다른 사람 풀이
def solution(phone_number):
return "*"*(len(phone_number)-4) + phone_number[-4:]
해결 방법
파이썬이 아직 익숙하지 않다보니 string 관련 함수들을 잘 모르는데 replace를 쓰면 좋을 것 같아서 찾아보고 사용했다.
✅ replace(대체 당하는 기존 string, 대체할 새로운 string)
✅ string은 '+' 연산자로 붙일 수 있음
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers Lv.1]숫자 문자열과 영단어 (Python) (0) | 2022.03.23 |
---|---|
[Programmers Lv.1]콜라츠 추측 & 최대공약수와 최소공배수 (Python) (0) | 2022.03.10 |
[Programmers Lv.1]정수 제곱근 판별 & 정수 내림차순으로 배치하기 (Python) (0) | 2022.03.10 |
[Programmers Lv.1]짝수와 홀수 & 하샤드 수 (Python) (0) | 2022.03.07 |
[Programmers Lv.1]행렬의 덧셈 & x만큼 간격이 있는 n개의 숫자 (Python) (0) | 2022.03.05 |
Comments