7_3 - syh39/ProblemSolving GitHub Wiki
숫자 문자열과 영단어
https://school.programmers.co.kr/learn/courses/30/lessons/81301
출처:난이도 : 1
풀이여부 : Y
2021 카카오 채용연계형 인턴십
유형 :풀이 방법
def solution(s):
return int(s.replace("zero", "0").replace("one", "1").replace("two", "2").replace("three","3").replace("four","4").replace("five","5").replace("six","6").replace("seven","7").replace("eight","8").replace("nine","9"))
다른 사람의 풀이 방법:
num_dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}
def solution(s):
answer = s
for key, value in num_dic.items():
answer = answer.replace(key, value)
return int(answer)
결론
이런 문제만 나오면 좋겠다
내적
https://school.programmers.co.kr/learn/courses/30/lessons/81301
출처:난이도 : 1
풀이여부 : Y
월간 코드 챌린지 시즌1
유형 :풀이 방법
def solution(a, b):
answer = 0
for i in range(0, len(a)):
answer += a[i]*b[i]
return answer
다른 사람의 풀이 방법:
def solution(a, b):
return sum([x*y for x, y in zip(a,b)])
결론
zip()이 많이 쓰이는구나
체육복
https://school.programmers.co.kr/learn/courses/30/lessons/42862
출처:난이도 : 1
풀이여부 : Y
탐욕법(Greedy)
유형 :풀이 방법
def solution(n, lost, reserve):
for i in reserve:
if i in lost:
reserve.remove(i)
lost.remove(i) # reserve 기준 중복값 제거
for i in lost:
if i in reserve:
reserve.remove(i)
lost.remove(i) # lost 기준 중복값 제거
reserve.sort() # reserve 정렬
lost.sort() # lost 정렬
for i in reserve:
if i - 1 in lost:
lost.remove(i - 1) # 앞사람 먼저 찾기
elif i + 1 in lost:
lost.remove(i + 1) # 뒤사람 찾기
return n - len(lost)
다른 사람의 풀이 방법:
def solution(n, lost, reserve):
_reserve = [r for r in reserve if r not in lost]
_lost = [l for l in lost if l not in reserve]
for r in _reserve:
f = r - 1
b = r + 1
if f in _lost:
_lost.remove(f)
elif b in _lost:
_lost.remove(b)
return n - len(_lost)
결론
sort() 안해서 삽질하고 reserve, lost 기준으로 두개 다 중복값 안 빼줘서 삽질했다. 두개 다 검색해서 알아냈는데 더 꼼꼼하게 반례를 찾는 습관을 길러야겠다.