문제설명
학생 10명이 상담을 받기 위해 매일 한 명씩, 순서대로 상담실을 찾아갑니다. 상담은 상담 선생님이 계실 때에만 상담을 받을 수 있습니다. 또한 한번 상담실을 방문한 학생은 다시 상담실에 찾아가지 않습니다. 선생님의 일정표가 주어질 때, 누가 상담을 받지 못했는지 알고 싶습니다. 일정표에는 선생님이 있는 날엔 "O"가, 없는 날엔 "X"가 표시됩니다.
예를 들어, 선생님의 일정이 ["O", "X", "X", "O", "O", "O", "X", "O", "X", "X"]라면 2번, 3번, 7번, 9번, 10번의 학생은 상담을 받지 못합니다.
선생님의 일정을 담은 리스트 schedule이 매개변수로 주어질 때, 상담을 받지 못한 학생의 번호를 오름차순으로 정렬하여 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
매개변수 설명
선생님의 일정을 담은 리스트 schedule이 solution 함수의 매개변수로 주어집니다.
* schedule의 원소는 "O" 또는 "X"입니다.
* schedule은 길이가 10인 리스트입니다.
return 값 설명
상담을 받지 못한 학생들의 번호를 오름차순으로 정렬하여 return합니다.
예시
| schedule | return |
|----|----|
| ["O", "X", "X", "O", "O", "O", "X", "O", "X", "X"] | [2, 3, 7, 9, 10] |
예시설명
1일, 4일, 5일, 6일, 8일에만 선생님이 상담실에 있으므로 2번, 3번, 7번, 9번, 10번 학생은 상담을 받지 못합니다.
문제 코드
def solution(schedule):
answer = []
for idx, i in enumerate(schedule):
if i == @@@:
answer.append(@@@)
return answer
풀이
def solution(schedule):
answer = []
# enumerate: 인덱스(idx)와 값(i)을 함께 반환하여 for문과 주로 사용
# 선생님의 일정(i)이 "X"면 학생 번호(idx+1)을 answer에 추가
for idx, i in enumerate(schedule):
if i == "X":
answer.append(idx+1)
return answer
댓글