반응형

 

문제 6

국어 시험 점수와 영어 시험 점수가 나왔습니다. 이때 국어, 영어, 수학 시험의 평균이 70점 이상이려면 수학 시험 점수가 최소 몇 점이어야 하는지 알고 싶습니다.

국어 점수 korean과 영어 점수 english가 매개변수로 주어질 때, 평균 점수를 70점 이상 받기 위해 받아야 하는 수학 점수의 최솟값을 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _**한 줄**_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.

---
#####매개변수 설명
국어 점수 korean과 영어 점수 english가 solution 함수의 매개변수로 주어집니다.
* korean과 english는 0 이상 100 이하인 정수입니다.

---
#####return 값 설명
평균 70점을 넘기기 위해 받아야 하는 수학 점수의 최솟값을 return 합니다.
* 수학 점수를 100점을 받아도 평균 70점이 되지 않는 경우에는 -1을 return 합니다.

---
#####예시

korean english return
70  60 80

#####예시 설명
국어 점수가 70점, 영어 점수가 60점입니다. 따라서 평균이 70점 이상을 받으려면 수학 시험에서 최소 80점을 받아야 합니다.

[ 소스 코드 ]

def solution(korean, english):
    answer = 0
    math = 210 - korean + english
    if math > 100:
        answer = -1
    else:
        answer = math
    return answer

#아래는 테스트케이스 출력을 해보기 위한 코드입니다. 
#아래에는 잘못된 부분이 없으니 위의 코드만 수정하세요.
korean = 70
english = 60
ret = solution(korean, english)

#[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")

 

 

[ 정답 보기 ]

더보기
def solution(korean, english):
    answer = 0
    math = 210 - (korean + english)
    if math > 100:
        answer = -1
    else:
        answer = math
    return answer

 

 

문제 7

XX 마트에선 구매할 물건이 3개 이하이면 소량 계산대에서, 그렇지 않으면 일반 계산대에서 계산해야 합니다. 두 계산대 모두 물건 한 개를 계산하는 데 1분이 걸립니다.

손님들이 구매할 물건 수가 담긴 배열 stuffs가 매개변수로 주어질 때, 모든 물건을 계산하는 데 필요한 시간을 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _**한 줄**_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.

---

#####매개변수 설명
손님들이 구매할 물건 수가 담긴 배열 stuffs가 solution 함수의 매개변수로 주어집니다.
* 계산을 할 손님은 1명 이상 100명 이하입니다.
* 손님이 구입할 물건은 1개 이상 20개 이하입니다.

---

#####return 값 설명
모든 물건을 계산하는데 걸리는 시간을 return 해주세요.

---
#####예시

stuffs return 
 [5, 3, 4, 2, 3, 2]  10

#####예시 설명

첫 번째 손님, 세 번째 손님은 일반 계산대에서 계산합니다. 이때 9분이 걸립니다.
두 번째, 네 번째, 다섯 번째, 여섯 번째 손님은 소량 계산대에서 계산합니다. 이때 10분이 걸립니다.
따라서 모든 물건을 계산하는데 걸리는 시간은 10분입니다.

[ 소스 코드 ]

def solution(stuffs):
    answer = 0
    small_counter, general_counter = 0, 0
    for s in stuffs:
        if s > 3:
            general_counter += s
        else:
            small_counter += s
    if small_counter < general_counter:
        answer = small_counter
    else:
        answer = general_counter
    return answer

#아래는 테스트케이스 출력을 해보기 위한 코드입니다. 
#아래에는 잘못된 부분이 없으니 위의 코드만 수정하세요.
stuffs = [5, 3, 4, 2, 3, 2]
ret = solution(stuffs)

#[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은 ", ret, " 입니다.")

 

 

[ 정답 보기 ]

더보기
def solution(stuffs):
    answer = 0
    small_counter, general_counter = 0, 0
    for s in stuffs:
        if s > 3:
            general_counter += s
        else:
            small_counter += s
    if small_counter > general_counter:
        answer = small_counter
    else:
        answer = general_counter
    return answer

 

 

 

문제 8

상수도 요금을 계산하려 합니다. 가정용 상수도 사용요금 계산방법은 아래와 같습니다.

단계  사용량 요금
1단계 0~20톤 430원 
2단계 21~30톤 570원 
3단계 31톤 이상 840원

사용료는 사용량에 따라 단계별로 적용됩니다. 예를 들어, 물을 35톤 사용했다면 다음과 같은 방식으로 계산합니다.

```
* 1단계 적용 : 20톤 x 430원 = 8,600원
* 2단계 적용 : 10톤 x 570원 = 5,700원
* 3단계 적용 : 5톤 x 840원 = 4,200원
총 사용요금 : 18,500원
```

상수도 사용량 usage가 매개변수로 주어질 때, 사용요금을 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 **한 줄**만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.

---
#####매개변수 설명
상수도 사용량 usage가 solution 함수의 매개변수로 주어집니다.
* 상수도 사용량은 0톤 이상 100톤 이하인 정수입니다.

---
#####return 값 설명
사용요금을 return 해주세요.

---
#####예시

 usage return
35 18500

#####예시 설명
문제에 나온 예와 같습니다.

[ 소스 코드 ]

def solution(usage):
    answer = 0
    if usage > 30:
        answer = 20 * 430 + 10 * 570 + (usage - 20) * 840
    elif usage > 20:
        answer = 20 * 430 + (usage - 20) * 570
    else:
        answer = usage * 430
    return answer

#아래는 테스트케이스 출력을 해보기 위한 코드입니다. 
#아래에는 잘못된 부분이 없으니 위의 코드만 수정하세요.
usage = 35
ret = solution(usage)

#[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret, "입니다.")

 

 

[ 정답 보기 ]

더보기
def solution(usage):
    answer = 0
    if usage > 30:
        answer = 20 * 430 + 10 * 570 + (usage - 30) * 840
    elif usage > 20:
        answer = 20 * 430 + (usage - 20) * 570
    else:
        answer = usage * 430
    return answer

 

 

문제 9

시험 점수에 따라 학생의 순위를 매기려 합니다. 동점자 순위는 가능한 순위 중 가장 높은 순위로 매깁니다.
예를 들어 학생별 점수가 [90, 87, 87, 23, 35, 28, 12, 46]이면, 학생별 순위는 [1, 2, 2, 7, 5, 6, 8, 4]입니다.

모든 학생의 점수를 담은 배열 score가 매개변수로 주어질 때, 순위를 담은 배열을 return 하도록 solution 함수를 작성해주세요.

---

##### 매개변수 설명
모든 학생의 점수를 담은 배열 score가 solution 함수의 매개변수로 주어집니다.
* 학생 수는 1명 이상 1,000명 이하입니다.
* 점수는 1 이상 100 이하인 정수입니다.

---

##### return 값 설명
* 순위를 담은 배열을 return 합니다.

---
##### 예시

score return
 [90, 87, 87, 23, 35, 28, 12, 46] [1, 2, 2, 7, 5, 6, 8, 4] 
[10, 20, 20, 30] [4, 2, 2, 1]

##### 예시 설명
예시 #1
문제에 나온 예와 같습니다.

예시 #2
이들의 순위는 [4, 2, 2, 1]입니다.

[ 소스 코드 ]

#다음과 같이 import를 사용할 수 있습니다.
#import math

def solution(score):
	# 여기에 코드를 작성해주세요.
    answer = []
    return answer

#아래는 테스트케이스 출력을 해보기 위한 코드입니다.
score1 = [90, 87, 87, 23, 35, 28, 12, 46]
ret1 = solution(score1)

#[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은 ", ret1, " 입니다.")

score2 = [10, 20, 20, 30]
ret2 = solution(score2)

#[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은 ", ret2, " 입니다.")

 

 

[ 정답 보기 ]

더보기
def solution(score):
    answer = [0] * len(score)
    for i in range(len(score)):
        answer[i] = sum(map(lambda x:x > score[i], score))+1
    return answer

 

 

문제 10

n명이 시간표에 따라 교대 근무에 들어갑니다. 이때 가장 오래 일한 사람이 몇 시간 일했는지 알아내려 합니다. 근무 순번은 첫 번째 사람부터 n번째 사람 순으로 합니다. n번 사람이 일을 한 뒤에는 다시 첫 번째 사람부터 일을 합니다.

예를 들어 시간표가 [1, 5, 1, 9]이고 n이 3이면 첫 번째 사람은 1+9시간, 두 번째 사람은 5시간, 세 번째 사람은 1시간 근무합니다. 따라서 첫 번째 사람이 가장 오래 일했으며, 10시간 일했습니다.

근무 시간표를 담은 배열 time_table과 사람 수 n이 매개변수로 주어질 때, 가장 오래 일한 사람은 몇 시간 일했는지 return 하도록 solution 함수를 작성해주세요.

---
##### 매개변수 설명
시간표를 담은 배열 time_table과 사람 수 n이 solution 함수의 매개변수로 주어집니다.
* time_table의 길이는 1 이상 100 이하입니다.
* time_table의 원소는 1 이상 100 이하인 자연수입니다.
* n은 1 이상 `time_table의 길이` 이하인 자연수입니다.

---

##### return 값 설명
가장 오래 일한 사람이 몇 시간 일했는지 return 합니다.

---
##### 예시

time_table n return
[1, 5, 1, 9] 3 10
 [4, 8, 2, 5, 4, 6, 7] 14

##### 예시 설명
예시 #1
앞선 예와 같습니다.

예시 #2
첫 번째 사람은 4+4시간만큼 근무를 합니다.
두 번째 사람은 8+6시간만큼 근무를 합니다.
세 번째 사람은 2+7시간만큼 근무를 합니다.
네 번째 사람은 5시간만큼 근무를 합니다.
따라서, 가장 오래 근무를 한 사람은 14시간 일했습니다.

[ 소스 코드 ]

#다음과 같이 import를 사용할 수 있습니다.
#import math

def solution(time_table, n):
    #여기에 코드를 작성해주세요.
    answer = 0
    return answer

#아래는 테스트케이스 출력을 해보기 위한 코드입니다.
time_table1 = [1, 5, 1, 9]
n1 = 3
ret1 = solution(time_table1, n1)

#[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret1, "입니다.")

time_table2 = [4, 8, 2, 5, 4, 6, 7]
n2 = 4
ret2 = solution(time_table2, n2)

#[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은", ret2, "입니다.")

 

 

[ 정답 보기 ]

더보기
def solution(time_table, n):
    answer = 0
    lst = [0 for _ in range(n)]
    for i, t in enumerate(time_table):
    	lst[i % n] += t
    answer = max(lst)
    return answer

 

 

[ 출처 ] http://www.ybmit.comcos pro 샘플문제

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[ 출처 ] http://www.ybmit.comcos pro 샘플문제

반응형
Posted by 명문코딩컴퓨터
,