기초 파이썬(python) 질문드립니다!!!

조회수 362회

한시간 넘게 머리 싸매고 이것저것 검색하고 시도해보아도 도저히 모르겠어서 질문드립니다 이미지 첨부가 안되어서 말로 설명드립니다.

터틀 함수로 이미 짜여진 리스트문을 주고 그 값에 따른 막대 그래프를 만들어야 합니다 그리고 그 각각 값의 막대그래프마다 위에 그 값의 숫자를 입력되어야 합니다 그렇게 해서 제가 짜본건

import turtle
t=turtle.Turtle()
def grapic():
    mylist=[120,56,209,156,23,98]
    for i in range(1,100):
        t.width(2)
        t.left(90)
        t.forward(mylist)
        t.right(90)
        t.write(str(mylist))
        t.forward(20) 
        t.right(90)
        t.forward(mylist)

grapic()

이렇게 짜 보았는데요 도저히 모르겠네요 아 그리고 조건은 막대를 그리는건 함수로 선언하여 만들어야합니다 도와주세요 ㅠㅠ

1 답변

  • 1. for를 쓰셨네요. 왜 for를 써야 한다고 생각하셨나요? 아마도 뭔가를 반복해야 했기 때문에 쓰셨겠죠. 근데 뭘 반복해야 했던 걸까요? 1에서 100까지를 반복했어야 할까요? 제 생각엔 그보다는 120, 56, 209, ... 하는 값들에 대해서 같은 동작을 반복했어야 하는 거 아닐까 싶은데 어떠세요?

    2. 자 그러면 그 반복해야 하는 같은 동작이란 뭘까요? 막대 그래프니까, 맨 밑바닥에서부터 일단은 120만큼 위로 간 다음, 그 바로 위 적당히 높은 곳에 120이라고 적어 주고, 그 다음은 오른쪽으로 좀 비켜서, 다시 맨 밑바닥에서부터 56만큼 위로 간 다음 그 바로 위 적당히 높은 곳에 56이라고 적어 주고... 를 반복해야 하겠군요. 다른 건 다 같고 120이냐 56이냐만 달라지고 있다는 점이 보이시나요?

    왠지 질문자님께는 이 정도 힌트만 드리면 될 거 같아서 이만 줄입니다. 해보세요! 하실 수 있어요.


    보너스: 왜 1부터 100까지 순회하셨는지를 잘 모르겠습니다만 혹시라도 막대그래프 전체의 너비/높이가 정해져 있어서 그 안에 그래프를 채워야 하는 거라면... 약간의 비율 계산만 좀 추가하면 됩니다. mylist에서 최대값을 구해서 그것을 100으로 줄인다고 하면, 그 비율대로라면 120은 얼마로 줄어야 하는가? 같은 걸 구하는 과정이 mylist 순회 과정에 들어가면 되는 것이죠. 곰곰이 생각해 보시면 어렵지 않습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)