눈송이의 개발생활

[Programmers Lv.1]2016년 & 핸드폰 번호 가리기 (Python) 본문

Algorithm/Programmers

[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은 '+' 연산자로 붙일 수 있음

Comments