본문 바로가기
Programming/Solving_problems

[기본_7문제_풀기/제주코딩베이스캠프] 2. 징검다리 건너기

by lineho 2020. 7. 6.
반응형

2. 징검다리 건너기

 1) 문제: 강아지 4마리가 징검다리를 건넙니다. 조건과 아래의 입출력을 만족시키시오.

  - 조건: 돌은 순서대로 놓이며 내구도 0까지 돌이 버틸 수 있습니다. 0 미만이 되면 그 징검다리를 못 밟습니다.(뛰어 넘기는 가능), (독 = 강아지)

  - 조건: 각 강아지들의 정보는 JSON 형태이므로 JSON을 Import하여 사용하시오. 

  - 조건: 각 돌에 강아지들이 멈추게 되면 돌의 내구도는 강아지의 몸무게만큼 줄어듭니다.

  - 조건: 강아지들의 점프력은 각자 다릅니다. 점프력이 2라면 2칸씩 점프하여 착지합니다.

  - 조건: 각 강아지들은 표시된 순서대로만 다리를 건넙니다.

**입력**
돌의내구도 = [1, 2, 1, 4]
독 = [{
    "이름" : "루비독",
    "나이" : "95년생",
    "점프력" : "3",
    "몸무게" : "4",
    },{
    "이름" : "피치독",
    "나이" : "95년생",
    "점프력" : "3",
    "몸무게" : "3",
    },{
    "이름" : "씨-독",
    "나이" : "72년생",
    "점프력" : "2",
    "몸무게" : "1",
    },{
    "이름" : "코볼독",
    "나이" : "59년생",
    "점프력" : "1",
    "몸무게" : "1",
    },
]

**출력**
생존자 : ['씨-독']

**입력**
돌의내구도 = [5, 3, 4, 1, 3, 8, 3]
독 = [{
    "이름" : "루비독",
    "나이" : "95년생",
    "점프력" : "3",
    "몸무게" : "4",
    },{
    "이름" : "피치독",
    "나이" : "95년생",
    "점프력" : "3",
    "몸무게" : "3",
    },{
    "이름" : "씨-독",
    "나이" : "72년생",
    "점프력" : "2",
    "몸무게" : "1",
    },{
    "이름" : "코볼독",
    "나이" : "59년생",
    "점프력" : "1",
    "몸무게" : "1",
    },
]

**출력**
생존자 : ['루비독', '씨-독']

 2) 문제 풀이

import json

json_dog = json.dumps(독, ensure_ascii=False)
json_dog = json.loads(json_dog)

def CrossTheSteepingStone(durability, json_dog):
    answer = [i['이름'] for i in json_dog]
    for i in json_dog:
        dog_location = 0
        while dog_location < len(durability)-1:
            dog_location += int(i['점프력'])
            durability[dog_location-1] -= int(i['몸무게'])
            if durability[dog_location-1] < 0:
                del answer[answer.index(i['이름'])]
                break
    return print(answer)

CrossTheSteepingStone(돌의내구도.copy(), json_dog.copy())

 

 

 

 

※참고자료: 인프런 - 눈떠보니 코딩 테스트 전날! 강좌

※참고자료: 나무위키

※Copyright 사도출판 All rights reserved.

※본 게시물 속 내용을 통해 직접적으로 상업적인 목적이 없으며 게시물은 개인 공부 목적 및 지식 간단 전파목적으로 사용되었음을 명시함. 책 및 인터넷 검색을 참고자료로 하여 실습 및 학습을 한 내용을 올림. 참고한 책 및 인터넷 검색물의 저작권을 존중하므로 책 및 인터넷 저작물의 일부 또는 전부를 무단 복제 및 무단 전재 및 재배포하지 않음(일부라 함은 30%이하의 내용 중복은 불포함[30%이하는 다른 저작물로 간주]). 또한 책 또는 매체를 구매하지 않고는 정확한 내용을 알 수 없으며 개인이 따로 공부한 내용도 추가 되어 책과는 내용이 매우 상이할 수 있음.즉 본 게시물 작성자는 이 게시물을 읽는 모든 사람들이 책을 구매거나 인터넷 검색을 더하여 지식을 같이 나누었으면 좋겠음.

반응형