inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

4. 대표값

min 값을 점수[0]으로 초기화 했을 때 테스트케이스 5번 exit_code1이었나 오류가 나는 이유가 뭔가요?

295

인프런

작성한 질문수 9

0

import sys
sys.stdin = open('input.txt', 'rt')

N = int(input())
score = list(map(int, input().split()))
ave = int((sum(score) / N) + 0.5)
min = score[0]
for i,v in enumerate(score):
    value = abs(v - ave)
    #print(value)
    if value < min:
        min = value
        idx = i
        tmp_score = v
        
    elif value == min:
        if v > tmp_score:
            min = value
            idx = i
            tmp_score = v
print(ave, idx + 1)

작성한 코드입니다.

in5 는

5

1 2 3 4 5 로 입력을 받는데 해당 케이스 통과를 못하네요.

비쥬얼스튜디오에서 돌려보니 tmp_score가 정의되지 않았다고 뜨네요.

min값을 초기화 할 때 리스트 0번쨰 인덱스로도 초기화 한다고 하셨는데 뭐가 문제인건가요?

 

 

python 코테 준비 같이 해요!

답변 1

0

김태원

안녕하세요^^

min값을 리스트의 0번 인덱스 값으로 초기화 할 때는 최솟값을 리스트의 자료값들 중에서 찾을때 입니다.

대표값 문제는 score 리스트에 있는 값들 중에서 최솟값을 찾는게 아니라 평균과 리스트값의 차들 중에서 찾는 것이기 때문에 0번 인덱스의 값으로 초기화하면 답이 안나올 수 있습니다.

하지만 위에 코드의 진짜 문제는 v값이 2일 때

elif value == min:
        if v > tmp_score:

위에 조건이 value=1, min =1 로 위조건이 참이 되어 if v > tmp_score: 조건을 실행할 때 tmp_score값이 없는 값으로 존재하기 때문에 에러가 나는 것입니다. 그래서

import sys
sys.stdin = open('input.txt', 'rt')

N = int(input())
score = list(map(int, input().split()))
ave = int((sum(score) / N) + 0.5)
min = score[0]
tmp_score = 0 #값을 초기화만 해줘도 5번 인풋 답은 나올겁니다.
for i,v in enumerate(score):
    value = abs(v - ave)
    #print(value)
    if value < min:
        min = value
        idx = i
        tmp_score = v
        
    elif value == min:
        if v > tmp_score:
            min = value
            idx = i
            tmp_score = v
print(ave, idx + 1)

 

min값을 2147000000 처럼 큰 값으로 하면 왜 아무 문제없이 나오는지도 연구해보세요.

기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.

1

104

2

스택에서 ')'을 만나는 경우

0

110

3

문제가 어디있나요?

0

86

2

변수 or 함수명

0

80

1

침몰하는 타이타닉 문제 질문입니다

0

71

1

AA.py 책점 에러

0

64

1

오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.

0

115

2

5.동전분배하기 문제 밑에코드도 정답이될까요?

0

118

1

아나그램 비교 코드

0

124

2

AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.

0

163

2

문제 링크가있나여?

0

155

2

채점기 Time Limit Exceeded 오류 문의

1

181

2

동적계획법은 사용하는 문제

0

135

2

제 코드 좀 봐주세요

0

154

1

예외가 존재할 가능성?

0

100

1

3번이 안풀립니다

0

98

0

5번 틀림

0

125

0

오류원인?

0

104

0

리스트 선언

0

116

1

침몰하는 타이타닉(그리디) 문제 질문

0

114

1

알고리즘

0

74

1

코딩테스트

0

98

1

DFS 순서 질문드립니다.

0

138

2

left, right를 사용한 풀이법에 대한 질문입니다

0

101

1