#문제1
학생 10명이 상담을 받기 위해 매일 한 명씩, 순서대로 상담실을 찾아갑니다. 상담은 상담 선생님이 계실 때에만 상담을 받을 수 있습니다. 또한 한번 상담실을 방문한 학생은 다시 상담실에 찾아가지 않습니다. 선생님의 일정표가 주어질 때, 누가 상담을 받지 못했는지 알고 싶습니다. 일정표에는 선생님이 있는 날엔 "O"가, 없는 날엔 "X"가 표시됩니다.
예를 들어, 선생님의 일정이 ["O", "X", "X", "O", "O", "O", "X", "O", "X", "X"]라면 2번, 3번, 7번, 9번, 10번의 학생은 상담을 받지 못합니다.
선생님의 일정을 담은 리스트 schedule이 매개변수로 주어질 때, 상담을 받지 못한 학생의 번호를 오름차순으로 정렬하여 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
매개변수 설명
선생님의 일정을 담은 리스트 schedule이 solution 함수의 매개변수로 주어집니다.
#문제2
체력시험 합격 인원을 알아보려고 합니다. 체력시험 종목으로는 윗몸일으키기, 팔굽혀펴기, 달리기가 있습니다. 종목별 합격기준은 다음과 같습니다.
윗몸일으키기
팔굽혀펴기
달리기
80점 이상
88점 이상
70점 이상
통과한 종목이 하나 이하거나, 통과 점수의 반을 넘기지 못한 종목이 있다면 불합격입니다.
그 외에는 합격입니다.
시험에 합격한 인원을 구하기 위해 다음과 같이 프로그램 구조를 작성했습니다.
1. 통과한 종목이 몇 개인지 셉니다.
2. 통과 점수의 반을 넘기지 못한 종목이 몇 개인지 셉니다.
3. 통과한 종목이 하나보다 많고 통과 점수의 반을 넘기지 못한 종목이 없으면 통과한 인원으로 셉니다.
각 종목 기록을 담고 있는 리스트 scores가 매개변수로 주어질 때, 시험에 합격한 인원을 return 하도록 solution 함수를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작할 수 있도록 빈칸에 주어진 func_a, func_b func_c 함수와 매개변수를 알맞게 채워주세요.
매개변수 설명
각 종목 기록을 담고 있는 리스트 scores가 solution 함수의 매개변수로 주어집니다.
#문제3
A와 B가 카드 게임을 할 때, 누가 더 많은 점수를 획득했는지, 또 획득한 점수는 몇 점인지 알아보려고 합니다. 게임 규칙은 다음과 같습니다.
알파벳 a, b, c, d, e가 적힌 카드뭉치가 있습니다.
A와 B가 서로 번갈아 가면서 n장씩 카드를 뽑습니다.
소유한 카드 점수를 합산합니다. 알파벳 카드 한 장당 a = 1점, b = 2점, c = 3점, d = 4점, e = 5점으로 점수를 계산합니다.
점수가 높은 사람이 승리합니다.
게임에서 이긴 사람과 획득 점수를 구하기 위해 다음과 같이 프로그램 구조를 작성했습니다.
1. A와 B가 번갈아가며 가져간 카드를 각각 리스트에 넣습니다.
2. A와 B가 각각 획득한 점수를 구합니다.
3. 획득한 점수가 큰 사람과 획득한 점수를 순서대로 리스트에 담아 return 합니다.
뽑아야 하는 카드 개수 n과 카드를 나타내는 문자열 bundle이 매개변수로 주어질 때, 이긴 사람과 점수를 return 하도록 solution 함수를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작할 수 있도록 빈칸에 주어진 func_a, func_b, func_c 함수와 매개변수를 알맞게 채워주세요.
매개변수 설명
뽑아야 하는 카드 개수 n과 카드를 나타내는 문자열 bundle이 solution함수의 매개변수로 주어집니다.
n은 1 이상 25 이하인 자연수입니다.
bundle은 모두 알파벳 소문자입니다.
bundle의 길이는 2이상 2*n이하입니다.
return값 설명
이긴 사람과 획득한 점수를 return합니다.
A가 이겼을 경우에는 1, B가 이겼을 경우에는 2, 무승부일 경우에는 0을 return 해주세요.
예시
n
bundle
return
4
"cacdbdedccbb"
[0, 13]
예시 설명
A는 c, c, b, e 카드를 뽑았고 B는 a, d, d, d 카드를 뽑았습니다. A가 획득한 점수는 13점이고 B가 획득한 점수는 13점입니다. 둘다 13점을 획득하여 게임은 무승부로 끝납니다.
n = 4
bundle = "cacdbdedccbb"
ret = solution(n, bundle)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")
#문제4
프로그래밍 수업 n개를 동시에 진행할 때, 필요한 조교 수를 알아보려고 합니다. 조교 1명이 m명의 학생을 담당합니다.
교실별 학생 수 classes, 조교 1명이 담당하는 학생 수 m이 매개변수로 주어질 때, 수업을 진행하기 위한 조교 수를 return 하는 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
매개변수 설명
교실별 학생 수 classes, 조교 1명이 담당하는 학생 수 m이 solution 함수의 매개변수로 주어집니다.
classes의 원소는 0이상 1,000이하인 정수입니다.
classes의 길이는 1이상 1,000이하인 자연수입니다.
m은 1이상 1,000이하인 자연수입니다.
return값 설명
수업을 진행하기 위한 조교 수를 return합니다.
예시
classes
m
return
[80, 45, 33, 20]
30
8
예시 설명
예시 #1
반마다 학생 수가 80명, 45명, 33명, 20명이고 조교 1명이 학생 30명을 담당합니다. 반마다 필요한 조교 수는 3명, 2명, 2명, 1명으로 총 8명의 조교가 필요합니다.
def solution(classes, m):
answer = 0
for students in classes:
answer += students @@@ m
if students @@@ m != 0:
answer += 1
return answer
아래는 테스트케이스 출력을 해보기 위한 코드입니다.
classes = [80, 45, 33, 20]
m = 30
ret = solution(classes, m)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")
#문제5
열량이 적힌 식단표가 있습니다.
다이어트를 하는 A 씨는 오늘 먹는 열량이 그동안 먹은 식단의 열량 중 최솟값보다 큰 경우 운동을 하여 그 차이만큼을 소모합니다.
예를 들어, 식단의 열량이 [713, 665, 873, 500, 751]이라면 둘째 날까지는 운동을 하지 않습니다. 셋째 날 식단의 열량이 873이고 그 전의 먹은 열량의 최솟값이 665이므로 208 열량을 소모하기 위한 운동을 합니다. 넷째 날은 운동을 하지 않고 다섯째 날 식단의 열량이 751이고 그 전의 먹은 열량의 최솟값이 500이므로 251 열량을 소모하기 위한 운동을 합니다. 따라서 운동으로 소모하는 총열량은 459입니다.
식단의 열량을 담고 있는 리스트 calorie가 매개변수로 주어질 때, 운동으로 소모하는 총열량을 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
매개변수 설명
식단의 열량을 담고 있는 리스트 calorie가 solution 함수의 매개변수로 주어집니다.
calorie의 각 원소는 0보다 크고 1,000보다 작거나 같은 자연수입니다.
calorie의 길이는 0보다 크고 100보다 작거나 같은 자연수입니다.
return 값 설명
운동으로 소모하는 총열량을 return 해주세요.
예시
calorie
return
[713, 665, 873, 500, 751]
459
예시 설명
문제의 예와 같습니다.
def solution(calorie):
min_cal = 0
answer = 0
for cal in calorie:
if cal > min_cal:
answer += cal - min_cal
min_cal = min(min_cal, cal)
return answer
아래는 테스트케이스 출력을 해보기 위한 코드입니다. 아래에는 잘못된 부분이 없으니, 위의 코드만 수정하세요.
calorie = [713, 665, 873, 500, 751]
ret = solution(calorie)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")
#문제6
적립된 포인트를 최대한으로 사용하려고 합니다. 포인트를 사용하는 규칙은 다음과 같습니다.
포인트는 100포인트 단위로 사용합니다.
1000포인트 이상 있을 때만 포인트를 사용할 수 있습니다.
적립된 포인트 point가 매개변수로 주어질 때, 최대 몇 포인트를 쓸 수 있는지 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
매개변수 설명
적립된 포인트 point가 solution함수의 매개변수로 주어집니다.
point는 0 이상 1,000,000 이하인 정수입니다.
return 값 설명
최대 몇 포인트를 쓸 수 있는지 return합니다
예시
point
return
2323
2300
예시 설명
적립된 포인트가 2323포인트라면 최대로 사용 가능한 포인트는 2300포인트입니다.
def solution(point):
if point < 1000:
return 0
return point * 100 // 100
아래는 테스트케이스 출력을 해보기 위한 코드입니다. 아래에는 잘못된 부분이 없으니, 위의 코드만 수정하세요.
point = 2323
ret = solution(point)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")
#문제7
중간시험 점수와 기말시험 점수가 있습니다. 이를 바탕으로 점수가 가장 많이 오른 학생의 점수 차이와 가장 많이 떨어진 학생의 점수 차이를 구하려 합니다. 이를 위해 다음과 같이 프로그램 구조를 작성했습니다.
1. 각 학생에 대하여 기말고사 점수에서 중간고사 점수를 뺀 값의 최댓값을 구합니다.
2. 각 학생에 대하여 기말고사 점수에서 중간고사 점수를 뺀 값의 최솟값을 구합니다.
3. 1번과 2번 과정에서 구한 점수를 리스트에 담아 return 합니다.
예를 들어 중간시험 점수가 [20, 50, 40]이고, 기말시험 점수가 [10, 50, 70]이면, 학생의 시험 점수 차이는 [-10, 0, 30]입니다. 따라서 성적이 가장 많이 오른 학생은 30점이 올랐습니다. 그리고 성적이 가장 많이 떨어진 학생은 10점이 떨어졌습니다.
학번순으로 중간시험 점수를 담은 리스트 mid_scores와 학번순으로 기말시험 점수를 담은 리스트 final_scores가 solution 함수의 매개변수로 주어집니다. 이 때 성적이 가장 많이 오른 학생의 점수 차이를 리스트 첫 번째 원소 로, 성적이 가장 많이 떨어진 학생의 점수 차이를 두 번째 원소 로 담은 리스트를 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
매개변수 설명
학번순으로 중간시험 점수를 담은 리스트 mid_scores와 학번순으로 기말시험 점수를 담은 리스트 final_scores가 solution 함수의 매개변수로 주어집니다.
시험 점수는 100 이하인 자연수입니다.
mid_scores의 길이는 5 이상 50 이하입니다.
리스트 mid_scores의 길이와 리스트 final_scores의 길이는 같습니다.
return 값 설명
성적이 가장 많이 오른 학생의 점수 차이를 리스트 첫 번째 원소 로 하고, 성적이 가장 많이 떨어진 학생의 점수 차이를 두 번째 원소 로 담은 리스트를 return 해주세요.
점수가 오른 학생이 없으면 첫 번째 원소에 0을 넣고, 점수가 떨어진 학생이 없으면 두 번째 원소에 0을 넣도록 합니다.
예시
mid_scores
final_scores
return
[20, 50, 40]
[10, 50, 70]
[30, -10]
def func_a(scores1, scores2):
answer = 0
for score1, score2 in zip(scores1, scores2):
answer = max(answer, score2 - score1)
return answer
def func_b(scores1, scores2):
answer = 0
for score1, score2 in zip(scores1, scores2):
answer = min(answer, score1 - score2)
return answer
def solution(mid_scores, final_scores):
up = func_a(mid_scores, final_scores)
down = func_b(mid_scores, final_scores)
answer = [up, down]
return answer
아래는 테스트케이스 출력을 해보기 위한 코드입니다. 아래에는 잘못된 부분이 없으니, 위의 코드만 수정하세요.
#문제8
1번부터 n번까지의 후보에 대한 투표 결과가 주어질 때, 과반수를 득표한 후보자의 번호를 구하려고 합니다. 여기서 과반수란 절반이 넘는 수를 의미합니다.
예를 들어, 1번부터 3번까지의 후보에 대한 투표 결과가 [1, 2, 1, 3, 1, 2, 1]이라면 순서대로 [1번, 2번, 1번, 3번, 1번, 2번, 1번] 후보에 투표했음을 나타내고, 이 경우 당선된 후보자의 번호는 1번입니다.
후보의 수 n, 투표 결과가 담긴 리스트 votes가 매개변수로 주어질 때, 과반수를 득표한 후보자의 번호를 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 작동하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
매개변수 설명
후보의 수 n, 투표 결과가 담긴 리스트 votes가 solution 함수의 매개변수로 주어집니다.
n은 1 이상 100 이하의 자연수입니다.
votes의 길이는 1 이상 1,000 이하의 자연수입니다.
votes의 각 원소는 1 이상 n 이하의 자연수입니다.
return 값 설명
과반수를 득표한 후보자의 번호를 return 해주세요.
만약, 과반수를 득표한 후보자가 없다면 -1을 return 해주세요.
예시
n
votes
return
3
[1,2,1,3,1,2,1]
1
2
[2,1,2,1,2,2,1]
2
예시 설명
예시 #1
1번부터 3번까지의 후보 3명이 있으며, 투표 결과는 [1, 2, 1, 3, 1, 2, 1]입니다.
총 투표 수는 7표이며, 1번 후보가 4표, 2번 후보가 2표, 3번 후보가 1표씩 받았습니다.
이 경우, 1번 후보가 과반수를 득표하였으므로 1을 return 합니다.
예시 #2
1번부터 2번까지의 후보 2명이 있으며, 투표 결과는 [2, 1, 2, 1, 2, 2, 1]입니다.
총 투표 수는 7표이며, 1번 후보는 3표, 2번 후보는 4표를 받았습니다.
이 경우, 2번 후보가 과반수를 득표하였으므로 2를 return 합니다.
def solution(n, votes):
arr = [0] * (n + 1)
for vote in votes:
arr[vote] += 1
for i in range(1, n+1):
if arr[i] > n/2:
return i
return -1
아래는 테스트케이스 출력을 해보기 위한 코드입니다. 아래에는 잘못된 부분이 없으니, 위의 코드만 수정하세요.
#문제1 학생 10명이 상담을 받기 위해 매일 한 명씩, 순서대로 상담실을 찾아갑니다. 상담은 상담 선생님이 계실 때에만 상담을 받을 수 있습니다. 또한 한번 상담실을 방문한 학생은 다시 상담실에 찾아가지 않습니다. 선생님의 일정표가 주어질 때, 누가 상담을 받지 못했는지 알고 싶습니다. 일정표에는 선생님이 있는 날엔 "O"가, 없는 날엔 "X"가 표시됩니다.
예를 들어, 선생님의 일정이 ["O", "X", "X", "O", "O", "O", "X", "O", "X", "X"]라면 2번, 3번, 7번, 9번, 10번의 학생은 상담을 받지 못합니다.
선생님의 일정을 담은 리스트 schedule이 매개변수로 주어질 때, 상담을 받지 못한 학생의 번호를 오름차순으로 정렬하여 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
매개변수 설명
선생님의 일정을 담은 리스트 schedule이 solution 함수의 매개변수로 주어집니다.
return값 설명
상담을 받지 못한 학생들의 번호를 오름차순으로 정렬하여 return합니다.
예시
예시 설명
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
아래는 테스트케이스 출력을 해보기 위한 코드입니다.
schedule = ["O", "X", "X", "O", "O", "O", "X", "O", "X", "X"] ret = solution(schedule)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")
#문제2 체력시험 합격 인원을 알아보려고 합니다. 체력시험 종목으로는 윗몸일으키기, 팔굽혀펴기, 달리기가 있습니다. 종목별 합격기준은 다음과 같습니다.
시험에 합격한 인원을 구하기 위해 다음과 같이 프로그램 구조를 작성했습니다.
각 종목 기록을 담고 있는 리스트 scores가 매개변수로 주어질 때, 시험에 합격한 인원을 return 하도록 solution 함수를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작할 수 있도록 빈칸에 주어진 func_a, func_b func_c 함수와 매개변수를 알맞게 채워주세요.
매개변수 설명
각 종목 기록을 담고 있는 리스트 scores가 solution 함수의 매개변수로 주어집니다.
return값 설명
시험에 합격한 인원을 return합니다.
예시
예시 설명
예시 #1 1번째 사람은 윗몸일으키기 30점, 팔굽혀펴기 40점으로 합격 점수의 반을 통과하지 못해 불합격입니다. 2번째 사람은 윗몸일으키기 97점, 팔굽혀펴기 88점, 달리기 95점으로 모두 통과하여 합격입니다. 따라서 총 1명이 합격하였습니다.
예시 #2 1번째, 2번째, 3번째, 6번째 사람이 합격 기준을 만족하여 총 4명이 합격하였습니다.
def func_a(passed, non_passed): return ( passed > 1 and non_passed ==0 )
def func_b(scores): answer = 0 if scores[0] < 40: answer += 1 if scores[1] < 44: answer += 1 if scores[2] < 35: answer += 1 return answer
def func_c(scores): answer = 0 if scores[0] >= 80: answer += 1 if scores[1] >= 88: answer += 1 if scores[2] >= 70: answer += 1 return answer
def solution(scores): answer = 0 for myscore in scores: passed = func@@@(@@@) nonpassed = func@@@(@@@) answer += func_@@@(@@@, @@@) return answer
아래는 테스트케이스 출력을 해보기 위한 코드입니다.
scores1 = [[30, 40, 100], [97, 88, 95]] ret1 = solution(scores1)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret1, "입니다.")
scores2 = [[90, 88, 70], [85, 90, 90], [100, 100, 70], [30, 90, 80], [40, 10, 20], [83, 88, 80]] ret2 = solution(scores2)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret2, "입니다.")
#문제3 A와 B가 카드 게임을 할 때, 누가 더 많은 점수를 획득했는지, 또 획득한 점수는 몇 점인지 알아보려고 합니다. 게임 규칙은 다음과 같습니다.
게임에서 이긴 사람과 획득 점수를 구하기 위해 다음과 같이 프로그램 구조를 작성했습니다.
뽑아야 하는 카드 개수 n과 카드를 나타내는 문자열 bundle이 매개변수로 주어질 때, 이긴 사람과 점수를 return 하도록 solution 함수를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작할 수 있도록 빈칸에 주어진 func_a, func_b, func_c 함수와 매개변수를 알맞게 채워주세요.
매개변수 설명
뽑아야 하는 카드 개수 n과 카드를 나타내는 문자열 bundle이 solution함수의 매개변수로 주어집니다.
return값 설명
이긴 사람과 획득한 점수를 return합니다. A가 이겼을 경우에는 1, B가 이겼을 경우에는 2, 무승부일 경우에는 0을 return 해주세요.
예시
예시 설명
A는 c, c, b, e 카드를 뽑았고 B는 a, d, d, d 카드를 뽑았습니다. A가 획득한 점수는 13점이고 B가 획득한 점수는 13점입니다. 둘다 13점을 획득하여 게임은 무승부로 끝납니다.
def func_a(bundle, start): return bundle[start::2]
def func_b(score1, score2): if score1 > score2: return [1, score1] elif score2 > score1: return [2, score2] else: return [0, score1]
def func_c(bundle): answer = 0 score_per_cards = { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5 } for card in bundle: answer += score_per_cards[card] return answer
def solution(n, bundle): a_cards = func_a(@@@, @@@)[:n] b_cards = func_a(@@@, @@@)[:n] a_score = func_c(@@@) b_score = func_c(@@@) return func_b(@@@, @@@)
아래는 테스트케이스 출력을 해보기 위한 코드입니다.
n = 4 bundle = "cacdbdedccbb" ret = solution(n, bundle)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")
#문제4 프로그래밍 수업 n개를 동시에 진행할 때, 필요한 조교 수를 알아보려고 합니다. 조교 1명이 m명의 학생을 담당합니다. 교실별 학생 수 classes, 조교 1명이 담당하는 학생 수 m이 매개변수로 주어질 때, 수업을 진행하기 위한 조교 수를 return 하는 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
매개변수 설명
교실별 학생 수 classes, 조교 1명이 담당하는 학생 수 m이 solution 함수의 매개변수로 주어집니다.
return값 설명
수업을 진행하기 위한 조교 수를 return합니다.
예시
예시 설명
예시 #1 반마다 학생 수가 80명, 45명, 33명, 20명이고 조교 1명이 학생 30명을 담당합니다. 반마다 필요한 조교 수는 3명, 2명, 2명, 1명으로 총 8명의 조교가 필요합니다.
def solution(classes, m): answer = 0 for students in classes: answer += students @@@ m if students @@@ m != 0: answer += 1 return answer
아래는 테스트케이스 출력을 해보기 위한 코드입니다.
classes = [80, 45, 33, 20] m = 30 ret = solution(classes, m)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")
#문제5 열량이 적힌 식단표가 있습니다. 다이어트를 하는 A 씨는 오늘 먹는 열량이 그동안 먹은 식단의 열량 중 최솟값보다 큰 경우 운동을 하여 그 차이만큼을 소모합니다.
예를 들어, 식단의 열량이 [713, 665, 873, 500, 751]이라면 둘째 날까지는 운동을 하지 않습니다. 셋째 날 식단의 열량이 873이고 그 전의 먹은 열량의 최솟값이 665이므로 208 열량을 소모하기 위한 운동을 합니다. 넷째 날은 운동을 하지 않고 다섯째 날 식단의 열량이 751이고 그 전의 먹은 열량의 최솟값이 500이므로 251 열량을 소모하기 위한 운동을 합니다. 따라서 운동으로 소모하는 총열량은 459입니다.
식단의 열량을 담고 있는 리스트 calorie가 매개변수로 주어질 때, 운동으로 소모하는 총열량을 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
매개변수 설명
식단의 열량을 담고 있는 리스트 calorie가 solution 함수의 매개변수로 주어집니다.
return 값 설명
운동으로 소모하는 총열량을 return 해주세요.
예시
예시 설명
문제의 예와 같습니다.
def solution(calorie): min_cal = 0 answer = 0 for cal in calorie: if cal > min_cal: answer += cal - min_cal min_cal = min(min_cal, cal) return answer
아래는 테스트케이스 출력을 해보기 위한 코드입니다. 아래에는 잘못된 부분이 없으니, 위의 코드만 수정하세요.
calorie = [713, 665, 873, 500, 751] ret = solution(calorie)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")
#문제6 적립된 포인트를 최대한으로 사용하려고 합니다. 포인트를 사용하는 규칙은 다음과 같습니다.
적립된 포인트 point가 매개변수로 주어질 때, 최대 몇 포인트를 쓸 수 있는지 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
매개변수 설명
적립된 포인트 point가 solution함수의 매개변수로 주어집니다.
return 값 설명
최대 몇 포인트를 쓸 수 있는지 return합니다
예시
예시 설명
적립된 포인트가 2323포인트라면 최대로 사용 가능한 포인트는 2300포인트입니다.
def solution(point): if point < 1000: return 0 return point * 100 // 100
아래는 테스트케이스 출력을 해보기 위한 코드입니다. 아래에는 잘못된 부분이 없으니, 위의 코드만 수정하세요.
point = 2323 ret = solution(point)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")
#문제7 중간시험 점수와 기말시험 점수가 있습니다. 이를 바탕으로 점수가 가장 많이 오른 학생의 점수 차이와 가장 많이 떨어진 학생의 점수 차이를 구하려 합니다. 이를 위해 다음과 같이 프로그램 구조를 작성했습니다.
예를 들어 중간시험 점수가 [20, 50, 40]이고, 기말시험 점수가 [10, 50, 70]이면, 학생의 시험 점수 차이는 [-10, 0, 30]입니다. 따라서 성적이 가장 많이 오른 학생은 30점이 올랐습니다. 그리고 성적이 가장 많이 떨어진 학생은 10점이 떨어졌습니다.
학번순으로 중간시험 점수를 담은 리스트 mid_scores와 학번순으로 기말시험 점수를 담은 리스트 final_scores가 solution 함수의 매개변수로 주어집니다. 이 때 성적이 가장 많이 오른 학생의 점수 차이를 리스트 첫 번째 원소 로, 성적이 가장 많이 떨어진 학생의 점수 차이를 두 번째 원소 로 담은 리스트를 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
매개변수 설명
학번순으로 중간시험 점수를 담은 리스트 mid_scores와 학번순으로 기말시험 점수를 담은 리스트 final_scores가 solution 함수의 매개변수로 주어집니다.
return 값 설명
성적이 가장 많이 오른 학생의 점수 차이를 리스트 첫 번째 원소 로 하고, 성적이 가장 많이 떨어진 학생의 점수 차이를 두 번째 원소 로 담은 리스트를 return 해주세요.
예시
def func_a(scores1, scores2): answer = 0 for score1, score2 in zip(scores1, scores2): answer = max(answer, score2 - score1) return answer
def func_b(scores1, scores2): answer = 0 for score1, score2 in zip(scores1, scores2): answer = min(answer, score1 - score2) return answer
def solution(mid_scores, final_scores): up = func_a(mid_scores, final_scores) down = func_b(mid_scores, final_scores) answer = [up, down] return answer
아래는 테스트케이스 출력을 해보기 위한 코드입니다. 아래에는 잘못된 부분이 없으니, 위의 코드만 수정하세요.
mid_scores = [20, 50, 40] final_scores = [10, 50, 70] ret = solution(mid_scores, final_scores)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")
#문제8 1번부터 n번까지의 후보에 대한 투표 결과가 주어질 때, 과반수를 득표한 후보자의 번호를 구하려고 합니다. 여기서 과반수란 절반이 넘는 수를 의미합니다.
예를 들어, 1번부터 3번까지의 후보에 대한 투표 결과가 [1, 2, 1, 3, 1, 2, 1]이라면 순서대로 [1번, 2번, 1번, 3번, 1번, 2번, 1번] 후보에 투표했음을 나타내고, 이 경우 당선된 후보자의 번호는 1번입니다.
후보의 수 n, 투표 결과가 담긴 리스트 votes가 매개변수로 주어질 때, 과반수를 득표한 후보자의 번호를 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 작동하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
매개변수 설명
후보의 수 n, 투표 결과가 담긴 리스트 votes가 solution 함수의 매개변수로 주어집니다.
return 값 설명
과반수를 득표한 후보자의 번호를 return 해주세요.
예시
예시 설명
예시 #1 1번부터 3번까지의 후보 3명이 있으며, 투표 결과는 [1, 2, 1, 3, 1, 2, 1]입니다. 총 투표 수는 7표이며, 1번 후보가 4표, 2번 후보가 2표, 3번 후보가 1표씩 받았습니다. 이 경우, 1번 후보가 과반수를 득표하였으므로 1을 return 합니다.
예시 #2 1번부터 2번까지의 후보 2명이 있으며, 투표 결과는 [2, 1, 2, 1, 2, 2, 1]입니다. 총 투표 수는 7표이며, 1번 후보는 3표, 2번 후보는 4표를 받았습니다. 이 경우, 2번 후보가 과반수를 득표하였으므로 2를 return 합니다.
def solution(n, votes): arr = [0] * (n + 1) for vote in votes: arr[vote] += 1
아래는 테스트케이스 출력을 해보기 위한 코드입니다. 아래에는 잘못된 부분이 없으니, 위의 코드만 수정하세요.
n1 = 3 votes1 = [1, 2, 1, 3, 1, 2, 1] ret1 = solution(n1, votes1)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은 ", ret1, " 입니다.")
n2 = 2 votes2 = [2, 1, 2, 1, 2, 2, 1] ret2 = solution(n2, votes2)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은 ", ret2, " 입니다.")
#문제9 4 x 4 크기 격자 모양 지형에 위험 지역이 몇 개인지 알고 싶습니다. 위험지역이란 동, 서, 남, 북 인접한 지역이 모두 해당 지역보다 높은 지역입니다. 예를 들어 지역 높이가 아래와 같다면
빨간 영역은 인접한 지역이 모두 해당 지역보다 높은 위험지역입니다.
지역별 높이가 담긴 2차원 리스트 height가 solution 함수의 매개변수로 주어질 때, 위험 지역이 몇 개인지 return 하도록 solution 함수를 완성해주세요.
매개변수 설명
지역별 높이가 담긴 2차원 리스트 height가 solution 함수의 매개변수로 주어집니다.
return 값 설명
위험지역이 몇 개인지 return 해주세요.
예시
예시 설명
문제에 나온 예와 같습니다.
다음과 같이 import를 사용할 수 있습니다.
import math
def solution(height):
여기에 코드를 작성해주세요.
아래는 테스트케이스 출력을 해보기 위한 코드입니다.
height = [[3, 6, 2, 8], [7, 3, 4, 2], [8, 6, 7, 3], [5, 3, 2, 9]] ret = solution(height)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")
#문제10 XX 시험을 친 수험생들의 점수가 주어질 때, 합격자 수를 구하려 합니다. 시험에 합격하기 위해서는 커트라인 이상의 점수를 받아야 합니다.
예를 들어 수험생들의 점수가 [80점, 90점, 55점, 60점, 59점]이고, 커트라인이 60점이라면 3명이 합격했습니다.
수험생들의 시험 점수가 들어있는 리스트 scores, 커트라인 점수 cutline이 매개변수로 주어질 때, 합격자 수를 return 하도록 solution 함수를 완성해주세요.
매개변수 설명
수험생들의 시험 점수가 들어있는 리스트 scores, 커트라인 점수 cutline이 solution 함수의 매개변수로 주어집니다.
return 값 설명
합격자의 수를 return 합니다.
예시
예시 설명
예시 #1
따라서 3명이 합격했습니다.
다음과 같이 import를 사용할 수 있습니다.
import math
def solution(scores, cutline):
여기에 코드를 작성해주세요.
아래는 테스트케이스 출력을 해보기 위한 코드입니다.
scores = [80, 90, 55, 60, 59] cutline = 60 ret = solution(scores, cutline)
[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")