제출 정답
test_num = int(input()) # 오답1 : input type
result = []
i = 0
while i < test_num :
takers = int(input()) # 응시 인원의 수
score = list(map(int, input().split())) # 성적들
avg = sum(score) / len(score) # 평균
passer = 0 # 오답3 : 변수 스코프
for x in score :
if x >= avg :
passer += 1
else : continue
result.append(str(passer) + '/' + str(takers))
passer = 0
i += 1 # 오답2 : while문의 형식
for y in result :
print(y)
풀이 과정 및 오답노트
1. 입력 형식의 오류
테스트 횟수와 테스트 응시인원을 입력받는 과정에서 데이터 타입 오류가 났다.
파이썬은 데이터 타입을 직접적으로 명시하는 정적 타입의 언어가 아닌 동적 타입의 언어이므로 데이터 타입의 암묵적 변환에 신경을 써야 한다.
test_num = input() # 문자열로 저장된다
test_num = int(input()) # 정수로 저장된다
2. while문의 형식
아직 파이썬을 사용한 지 며칠 안 되어 반복문의 사용에 미숙했다.
3. 변수 스코프
합격자의 수를 저장하는 변수 passer을 for문 안에서 정의 및 할당, 변경하여 예상치 못한 결과가 출력되었다. 변수 스코프를 이렇게 설정하면 이후 다른 회차의 시험에서도 이전 시험의 passer가 그대로 반영되어 합격자 수가 계속해서 누적된다. 이를 해결하기 위해 passer을 for문 밖에서 선언하고, 한 시험의 합격자 수 연산을 완료한 후 다시 0을 할당하여 초기화해주었다.
passer = 0
for x in score :
if x >= avg :
passer += 1
else : continue
result.append(str(passer) + '/' + str(takers))
passer = 0 # 합격자 수 초기화
구름LEVEL
코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이
level.goorm.io
'코딩 > 코테' 카테고리의 다른 글
[프로그래머스] 올바른 괄호 (스택/큐) (0) | 2023.09.04 |
---|---|
[프로그래머스] 기능개발 (스택/큐) (0) | 2023.08.29 |
[자바스크립트] 두 날짜 사이의 일수 구하기 (0) | 2022.06.17 |
[자바스크립트] 각 자릿수의 합으로 홀수 짝수 구별하기 (0) | 2022.06.03 |
[자바스크립트] 배열 속 부메랑 패턴의 개수 구하기 (0) | 2022.06.01 |