inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

제주코딩베이스캠프 Code Festival: Python 100제

38번,43번 질문입니다

210

난뀨

작성한 질문수 13

2

38번
for i in range(3):
    top = max(key)
    count += key.count(top)
    for j in range(key.count(top)): #key.count(top) 이걸 넣는 이유가 무엇인가요? 그냥 리스트 전체 순회해서 지우면 안되나요?
       key.remove(top)
43번
key = int(input())

b = []
while key:
    b.append(str(key % 2)) #int형은 append가 왜 여기서만 오류가 뜨는 거에요?
    key = int(key / 2)  #key는 이미 int인데 왜 int를 한번 더 해주는 건가요? 위에 줄에서 str로 바꿔줬기 때문이라면 int(key / 2)가 아니라 int(key) / 2 이렇게 해야 작동해야 하는거 아닌가요?
b.reverse()
print(int(''.join(b)))
궁금합니다!

python 코테 준비 같이 해요!

답변 2

0

Hojun Lee

우선 아래와 같은 코드로 답지를 변경해놓았어요.(좀 더 보기 쉬운 코드라 생각됩니다.)

주석도 좀 더 쉽게 달았다고 생각이 되는데 또 문의사항이 있으시면 말씀해주세요.^^

질문에 감사드립니다.^^

b = []
while key:
    b.append(str(key % 2)) 
#int형은 append가 왜 여기서만 오류가 뜨는 거에요?
#-> int형으로 하였을 때 append에서 오류가 뜨진 않고,
#아래 join에서 오류가 뜹니다.
    key = int(key / 2)  
#key는 이미 int인데 왜 int를 한번 더 해주는 건가요?
#위에 줄에서 str로 바꿔줬기 때문이라면 int(key / 2)가 아니라 int(key) / 2
#이렇게 해야 작동해야 하는거 아닌가요?
#-> 슬러쉬가 1개(/)일때 반환형이 float형이어서 그렇습니다.
#-> //로 해도 좋을 것 같네요.^^
b.reverse()
print(int(''.join(b)))

0

Hojun Lee

안녕하세요 난뀨님! :)

먼저 38번 답변을 해드리자면, 맞습니다. 그렇게 하시는 편이 효율면에서도 좋아요.^^

(이해하기 쉽도록 설명한다고 그렇게 설명한 것인데 오히려 비효율적이고 이해하기 어려우셨을 수도 있었겠다는 생각을 했습니다.ㅜㅜ)

아래 예제를 들어드릴게요.

[1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 6, 7, 8, 9, .... 10000000]

여기서 5라는 숫자만 다 지우고 싶으면 6번만 순회를 하면 되는데, 

리스트 전체를 순회할 경우 10000000를 순회해야 한다고 일반적으로 생각합니다.

그러나!

remove의 시간복잡도는 O(N)입니다.

따라서, 오히려 비효율적이에요.

난뀨님이 말씀해주신 것처럼 푸는 것이 옳습니다.^^

41번 문제 질문입니다.

0

321

0

94번 질문

0

202

0

알고리즘 강의가 어떤 것인가요?

0

270

1

3:55분부터 이해가 안갑니다

0

273

0

64번문제 작동이 안됩니다

0

275

0

1부터 100까지의 합

0

266

1

왜 '혜원'이 max값으로 출력되는지 모르겠습니다

1

381

1

sorted 와 sort 질문입니다

0

213

1

강의에서 사용하는 문제 제출 플렛폼 사용은?

0

242

0

37번 코드 / 오류 문의

0

318

1

40번질문입니다.

2

367

2

문자열 뒤집기 재귀함수 질문드려요

0

513

1

부록 Counter부터 내용이 안보여요

0

413

1

선택정렬 최솟값_인덱스 부분 질문입니다.

0

209

1

코딩문제 채점

0

296

1

자바스크립트 100제란 같은문제일까요?

0

244

1

50번 이후 문제는 안올라온건가요?

0

294

1

99번에 오류가 살짝 있어서 고쳐봤어요

0

298

0

마지막에 numpy 모듈 슬라이싱 사용시

0

265

0

강의에서 문제는 노션에서 복사해서 주피터나 파이썬 IDE복사해서 풀어보는 건가요?

0

335

1

공부 방법에 대해 질문드립니다.

1

284

1

38번 질문입니다.

0

137

0

37번문제 질문이 있습니다

0

127

0

40번 관련 질문드립니다.

0

163

0