코딩테스트 파이썬으로 풀기

프로그래머스 코딩테스트 파이썬으로 풀어보기

Posted by PAPION on October 12, 2019 · 1 min read #CodingTest #Python

파이썬 입문겸 문제풀기

문제 참고


문제풀이

코딩문제는 스토리가 좋은거같다..처음 읽었을 때는 감이 오질 않았는데, 스토리상으로 생각해보니
잃어버린 친구들이 도움을 요청하는 방식으로 생각을 해보았다.
도둑맞은 친구가 여유있는 친구들 중 자기 사이즈에 맞는 친구에게 부탁해보기로..
코드는 아래와 같다.

def solution(n, lost, reserve):

    answer = n - len(lost)

    for i in range(0, len(lost)):
        for j in range(0, len(reserve)):
            if lost[i] == (reserve[j]-1) or lost[i] == (reserve[j]+1):
                reserve.pop(j)
                answer += 1
                break

    return answer

이와 같이 했으나 역시나 오답.
여유분이 있는친구가 잃어버릴 수 있다는 것을 빼먹었다.

추가 완료. 정답.

def solution(n, lost, reserve):

    answer = n - len(lost)
    lost_tmp = []
    reserve_tmp = []

	# 도둑맞았지만 여유있는 친구들
    for i in range(0, len(lost)):
        for j in range(0, len(reserve)):
            if lost[i] == reserve[j]:
                lost_tmp.append(lost[i]);
                reserve_tmp.append(reserve[j]);
                answer += 1
                break;

    for i in lost_tmp:
        lost.remove(i)

    for i in reserve_tmp:
        reserve.remove(i)

	# 빌려오기
    for i in range(0, len(lost)):
        for j in range(0, len(reserve)):
            if lost[i] == (reserve[j]-1) or lost[i] == (reserve[j]+1):
                reserve.pop(j)
                answer += 1
                break

    return answer

다른사람들 풀이보면서 알게된 python 함수 및 문법

  • remove()
  • count()
  • abs()
  • if i in list: