강의로 돌아가기
심명훈

7,10번에서 틀립니다.

처음에 for문 2개로 여분 있는 사람이 도둑 맞은 경우 자기꺼로 커버하고 다른 사람 못 빌려준다는 표시로 -5 , -10으로 바꿔줬습니다.
두번째 for문 2개에서는 여분 있는 사람이 양쪽에 도둑 맞은 사람 있는지 보고 하나 주는 식입니다.

작성중인 코드―solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def solution(n, lost, reserve):
    k=0
    count=0
    lost_len=len(lost)
    reserve_len=len(reserve)
    for i in range(lost_len):
        for j in range(reserve_len):
            if lost[i]==reserve[j]:
                count+=1#lost 1개를 자기 여분으로 커버
                reserve[j]=-5#여분 없음
                lost[i]=-10
                break
    print(lost)
    print(reserve)
    for i in range(lost_len):
        for j in range(k,reserve_len):
            if abs(lost[i]-reserve[j])==1:
                k=j+1
                count+=1
                break
    return n-len(lost)+count
2 개의 답변
박재현

자바유저라 잘은모르겠는데 2번쨰포문에서 reserve가 무한히 여분의옷 나눔할수있는거아닌가요? 예를들면 lost[1 3 ] reserve[2] 이면 2가 1도 옷주고 3도옷주는식으루여

  • 박재현
    첫번째 포문에서 쓴 -5하는 동작을 2번쨰포문에서도 해야되지않을까여? 박재현 2018.10.27 10:01
  • 심명훈
    음.. 아래 댓글처럼 작성했는데 안되네요ㅠ 심명훈 2018.10.27 16:36
심명훈

for i in range(lost_len):
for j in range(k,reserve_len):
if abs(lost[i]-reserve[j])==1:
k=j+1
reserve[j] = -5 # 여분 없음
lost[i] = -10
count+=1
break

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.