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 기준으로 두개 다 중복값 안 빼줘서 삽질했다. 두개 다 검색해서 알아냈는데 더 꼼꼼하게 반례를 찾는 습관을 길러야겠다.