jcoding2601 / jcoding

0 stars 0 forks source link

COS Pro python 2급 6차 #6

Open jcoding2601 opened 3 days ago

jcoding2601 commented 3 days ago

#문제1 n일 동안 매일매일의 평균 기온이 순서대로 들어있는 리스트이 있습니다. 이때, A 번째 일과 B 번째 일 사이에서 A, B 번째 일보다 기온이 높았던 날은 총 며칠이었는지 구하려 합니다.

n일 동안 매일매일의 평균 기온이 순서대로 들은 리스트 temperature, 두 날짜를 나타내는 자연수 A, B가 매개변수로 주어질 때, A 번째 일과 B 번째 일 사이에서 두 날짜보다 기온이 높았던 날은 총 며칠인지 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.


매개변수 설명

n일 동안 매일매일의 평균 기온이 순서대로 들은 리스트 temperature, 두 날짜를 나타내는 자연수 A, B가 solution 함수의 매개변수로 주어집니다.


return 값 설명

A 번째 일과 B 번째 일 사이에서 두 날짜보다 기온이 높았던 날은 총 며칠인지 return 해주세요.


예제
temperature A B return
[3, 2, 1, 5, 4, 3, 3, 2] 1 6 2
예제 설명

예제 #1

따라서 2를 return 하면 됩니다.

def solution(temperature, A, B): answer = 0 for i in range(0, len(temperature)): if temperature[i] > temperature[A] and temperature[i] > temperature[B]: answer += 1 return answer

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

temperature = [3, 2, 1, 5, 4, 3, 3, 2] A = 1 B = 6 ret = solution(temperature, A, B)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret, "입니다.")

#문제2 한 줄로 서 있는 사람들에게 종이를 다음과 같은 방법으로 나눠주려 합니다.

한 줄로 서 있는 사람들이 각자 필요로 하는 종이 수가 순서대로 들어있는 리스트 papers, papers의 길이 paperslen, 처음에 맨 앞사람에게 전달한 종이 수 K가 매개변수로 주어질 때, 필요한 만큼의 종이를 받은 사람은 모두 몇 명인지 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어 있기 때문에 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.


매개변수 설명

한 줄로 서 있는 사람들이 각자 필요로 하는 종이 수가 순서대로 들어있는 리스트 papers, papers의 길이 papers_len, 처음에 맨 앞사람에게 전달한 종이 수 K가 solution 함수의 매개변수로 주어집니다


return 값 설명

필요한 만큼의 종이를 받은 사람은 모두 몇 명인지 return 해주세요.


예시
papers papers_len K return
[2, 4, 3, 2, 1] 5 10 3
[2, 4, 3, 2, 1] 5 14 5
예시 설명

예시 #1

맨 앞 사람부터 순서대로 [2장, 4장, 3장, 2장, 1장]의 종이가 필요합니다.

따라서 필요한 만큼의 종이를 받는 사람은 3명입니다.

예시 #2

모든 사람이 필요한 만큼의 종이를 받을 수 있습니다.

def solution(papers, K): length = len(papers) for i, paper in enumerate(papers): K -= paper if K < 0: length = i return length

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

papers1 = [2, 4, 2, 3, 1] K1 = 10 ret1 = solution(papers1, K1)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret1, "입니다.")

papers2 = [2, 4, 2, 3, 1] K2 = 14 ret2 = solution(papers2, K2)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret2, "입니다.")

#문제3 단체 유니폼을 주문하려고 합니다. 사람들의 덩치를 수치로 표현할 때 주문해야 하는 유니폼의 사이즈는 다음과 같습니다.

덩치 사이즈
95 미만 S
95 이상 100 미만 M
100 이상 105 미만 L
105 이상 XL

사람들의 덩치를 담은 리스트 people이 매개변수로 주어질 때, 주문해야 하는 유니폼 사이즈의 수를 [S, M, L, XL] 순으로 리스트에 담아 return 하도록 solution 함수를 작성해주세요.


매개변수 설명

사람들의 덩치를 담은 리스트 people이 solution 함수의 매개변수로 주어집니다.


return 값 설명

주문해야 하는 유니폼 사이즈의 수를 [S, M, L, XL] 순으로 리스트에 담아 return 합니다.


예시
people return
[97, 102, 93, 100, 107] [1, 1, 2, 1]
예시 설명

3번째 사람은 S 사이즈를 입어야합니다. 1번째 사람은 M 사이즈를 입어야합니다. 2, 4번째 사람은 L 사이즈를 입어야합니다. 5번째 사람은 XL 사이즈를 입어야합니다.

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

import math

def solution(people):

여기에 코드를 작성해주세요.

answer = [0 for _ in range(4)]
return answer

아래는 테스트케이스 출력을 해보기 위한 코드입니다.

people = [97, 102, 93, 100, 107] ret = solution(people)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은 ", ret, " 입니다.")

#문제4 카드를 3장 뽑아 점수를 내는 게임을 하려고 합니다. 각 카드는 색이 칠해져 있고, 숫자가 적혀 있습니다.

획득한 점수를 계산하는 규칙은 다음과 같습니다.

1. 카드 3장의 색이 모두 같다면 획득한 점수는 적힌 숫자의 총합에 3을 곱한 값입니다.
2. 카드 2장의 색이 같고, 1장의 색이 다르다면 획득한 점수는 적힌 숫자의 총합에 2를 곱한 값입니다.
3. 카드 3장의 색이 모두 다르다면 획득한 점수는 적힌 숫자의 총합입니다.

뽑은 카드의 색과 숫자를 문자열로 담은 2차원 리스트 cards가 매개변수로 주어질 때, 획득한 총 점수를 return 하도록 solution 함수를 작성해주세요.


매개변수 설명

뽑은 카드의 색과 숫자를 문자열로 담은 2차원 리스트 cards가 solution 함수의 매개변수로 주어집니다.


return 값 설명

획득한 총 점수를 return 합니다.


예제
cards return
[["blue", "2"], ["red", "5"], ["black", "3"]] 10
[["blue", "2"], ["blue", "5"], ["black", "3"]] 20
예제 설명

예제 #1 모든 카드 색이 모두 다르기 때문에 획득한 점수는 적힌 숫자의 총합인 10 입니다.

예제 #2 두 카드 색이 같고, 1장의 색이 다릅니다. 따라서’ 획득한 점수는 적힌 숫자의 총합에 2를 곱한 20 입니다.

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

import math

def solution(cards):

여기에 코드를 작성해주세요.

answer = 0
return answer

아래는 테스트케이스 출력을 해보기 위한 코드입니다.

cards1 = [["blue", "2"], ["red", "5"], ["black", "3"]] ret1 = solution(cards1)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret1, "입니다.")

cards2 = [["blue", "2"], ["blue", "5"], ["black", "3"]] ret2 = solution(cards2)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret2, "입니다.")

#문제5 X 마트에서는 빈 병 n개와 음료수 한 병을 교환해줍니다.

예를 들어, 현재 가진 돈이 8원, 음료수 한 병은 2원이고 n이 4라면 음료수 4개를 살 수 있습니다. 음료수 네개를 다 마신 후, 남은 빈 병 4개를 가져가면 음료수를 한 병 더 받을 수 있습니다. 따라서 8원으로는 음료수를 총 5병 마실 수 있습니다.

가진 돈 money, 음료수 한 병의 가격 price, 음료수 한 병과 교환하는데 필요한 빈 병의 수 n이 매개변수로 주어질 때, 마실 수 있는 총 음료수의 수를 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.


매개변수 설명

가진 돈 money, 음료수 한 병의 가격 price, 음료수 한 병과 교환하는데 필요한 빈 병의 수 n이 solution 함수의 매개변수로 주어집니다.


return 값 설명

마실 수 있는 총 음료수의 수를 return 해주세요.


예제
money price n return
8 2 4 5
6 2 2 5
예제 설명

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

예제 #2

  1. 6원으로 2원짜리 음료수 3개를 삽니다.
  2. 음료를 다 마시면 빈 병 3개가 남습니다. 이 중 빈 병 두개를 가져가 새 음료수 한 병과 교환합니다.
  3. 음료를 마시면 빈 병 2개가 남습니다. 이를 새 음료수 한 병으로 교환합니다. 따라서 총 6원으로는 음료수 5병을 마실 수 있습니다.

def solution(money, price, n): answer = 0 empty_bottle = answer = money // price while n <= empty_bottle: empty_bottle = empty_bottle + n answer += 1 empty_bottle += 1 return answer

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

money1 = 8 price1 = 2 n1 = 4 ret1 = solution(money1, price1, n1)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret1, "입니다.")

money2 = 6 price2 = 2 n2 = 2 ret2 = solution(money2, price2, n2)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret2, "입니다.")

#문제6 X 사이트에서는 회원가입을 할 때 다음의 규칙을 지켜 비밀번호를 생성해야 합니다.

1. 한 개 이상의 알파벳 대문자를 포함해야 합니다.
2. 두 개 이상의 알파벳 소문자를 포함해야 합니다.
3. 두 개 이상의 숫자를 포함해야 합니다.

생성하고자 하는 비밀번호 password가 매개변수로 주어질 때, 생성가능한 비밀번호면 true를 그렇지 않으면 false를 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.


매개변수 설명

생성하고자 하는 비밀번호 password가 solution 함수의 매개변수로 주어집니다.


return 값 설명

생성가능한 비밀번호면 true를 그렇지 않으면 false를 return 합니다.


예시
password return
"helloworld" false
"Hello123" true
예시 설명

예시 #1 알파벳 대문자와 숫자를 포함하지 않았습니다.

예시 #2 알파벳 대문자 1개, 알파벳 소문자 4개, 숫자 3개를 포함했으므로 생성할 수 있습니다.

def solution(password): capital_count, small_count, digit_count = 0, 0, 0 for p in password: if p >= 'A' and p <= 'Z': capital_count += 1 elif p >= 'a' and p <= 'z': small_count += 1 elif p >= @@@ and p <= @@@: digit_count += 1 if @@@: answer = True else: answer = False return answer

아래는 테스트케이스 출력을 해보기 위한 코드입니다.

password1 = "helloworld" ret1 = solution(password1)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret1, "입니다.")

password2 = "Hello123" ret2 = solution(password2)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret2, "입니다.")

#문제7 예산 내에서 의자와 책상을 하나씩 사려고 합니다. 이때, 의자와 책상 가격의 합이 가장 크게 사려고 합니다.

예를 들어, 돈을 7원을 가지고 있고 의자의 가격이 [2, 5], 책상의 가격이 [4, 3, 5]일 때, 첫번째 의자와 세번째 책상을 구매하면 가격의 합이 7원이고, 이때 의자와 책상 가격의 합이 가장 큽니다.

예산 money, 의자의 가격이 담긴 리스트 chairs, 책상의 가격이 담긴 리스트 desks가 매개변수로 주어집니다. 이때 예산으로 감당할 수 있는 의자와 책상 가격 합의 최댓값을 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.


매개변수 설명

예산 money, 의자의 가격이 담긴 리스트 chairs, 책상의 가격이 담긴 리스트 desks가 solution 함수의 매개변수로 주어집니다.


return 값 설명

의자와 책상을 하나씩 살때, 예산으로 감당할 수 있는 의자와 책상 가격 합의 최댓값을 return 합니다.


예제
money chairs desks return
7 [2, 5] [4, 3, 5] 7
7 [3] [5] 0
예제 설명

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

예제 #2 3원짜리 의자와 5원짜리 책상을 구매하면 8원이 듭니다. 이는 예산 7원을 초과하기때문에 0을 return 합니다.

def solution(money, chairs, desks): answer = 0 for chair in chairs: for desk in desks: price = @@@ if answer < price and @@@: answer = price return answer

아래는 테스트케이스 출력을 해보기 위한 코드입니다.

money1 = 7 chairs1 = [2, 5] desks1 = [4, 3, 5] ret1 = solution(money1, chairs1, desks1)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret1, "입니다.")

money2 = 7 chairs2 = [3] desks2 = [5] ret2 = solution(money2, chairs2, desks2)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret2, "입니다.")

#문제8 주어진 수와 주어진 수를 뒤집은 수와의 차를 계산하려고 합니다.

예를 들어, 주어진 수가 120인 경우 이를 뒤집으면 021입니다. 십진수에서 앞의 0은 제거해야하므로 120을 뒤집은 수는 21입니다. 따라서 120과 21의 차는 99 입니다.

이를 계산하기 위해 다음과 같이 프로그램 구조를 작성했습니다.

1. 주어진 수의 자릿수를 구합니다.
2. 구한 자릿수를 이용하여 주어진 수를 거꾸로 뒤집습니다.
3. 주어진 수와 뒤집은 수의 차이를 구합니다.

수 number가 주어질 때, 주어진 수와 주어진 수를 뒤집은 수와의 차를 return 하도록 solution 함수를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작할 수 있도록 빈칸에 주어진 func_a, func_b, func_c 함수와 매개변수를 알맞게 채워주세요.


매개변수 설명

수 number가 solution 함수의 매개변수로 주어집니다.


return 값 설명

주어진 수 number와 number를 뒤집은 수와의 차를 return 합니다.


예제
number return
120 99
23 9
예제 설명

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

예제 #2 23을 반대로 뒤집으면 32가 되고 이때 두 수의 차는 9 입니다.

def func_a(number1, number2): ret = 0 if number1 > number2: ret = number1 - number2 else: ret = number2 - number1 return ret

def func_b(number): ret = 0 while number != 0: number = number // 10 ret += 1 return ret

def func_c(number, digit): ret = 0 for i in range(digit): temp = number % 10 number = number // 10 ret = ret * 10 + temp return ret

def solution(number): answer = 0 digit = func_@@@(@@@) convertnumber = func@@@(@@@) answer = func_@@@(@@@) return answer

아래는 테스트케이스 출력을 해보기 위한 코드입니다.

number1 = 120 ret1 = solution(number1)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret1, "입니다.")

number2 = 23 ret2 = solution(number2)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 깂은", ret2, "입니다.")

#문제9 다양한 색을 가진 양말 중 같은 색을 가진 양말을 2개씩 묶어 한 쌍을 만드려고 합니다.

예를 들어, 가지고 있는 양말의 색깔이 [빨강, 파랑, 빨강, 노랑, 파랑, 빨강] 이라면 아래 그림과 같이 2쌍을 만들 수 있습니다.

스크린샷 2018-10-31 오후 1.01.08.png

양말 색을 숫자로 표현해서 담은 리스트 socks가 매개변수로 주어질 때, 양말을 몇 쌍 만들 수 있는지 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.


매개변수 설명

양말 색을 숫자로 표현해서 담은 리스트 socks가 solution 함수의 매개변수로 주어집니다.


return 값 설명

양말을 몇 쌍 만들 수 있는지 return 합니다.


예시
socks return
[1, 2, 1, 3, 2, 1] 2
예시 설명

문제에 나온 예와 같습니다.

def solution(socks): answer = 0 count = [0 for _ in range(10)] for s in socks: count[s] += 1 for c in count: answer += (c % 2) return answer

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

socks = [1, 2, 1, 3, 2, 1] ret = solution(socks)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret, "입니다.")

#문제10 불량 사과 상자가 몇 박스인지 알아보려 합니다. 사과 한 박스의 표준 무게는 weight이며, 표준 무게와 비교해 무게가 오차 10% 이내인 사과 박스는 정상품으로, 오차가 그보다 많은 사과 박스는 불량품으로 판정합니다.

예를 들어, 표준 무게가 600이라면 무게가 540 이상 660 이하인 사과 상자만 정상품입니다. 판정해야 할 사과 상자의 무게가 각각 [653, 670, 533, 540, 660]로 주어진다면 무게가 670, 533인 상자는 불량품입니다. 따라서 주어진 상자 중 불량품은 2개입니다.

표준 무게 weight와 판정해야 할 사과 상자의 무게가 담긴 리스트 boxes가 매개변수로 주어질 때, 불량품 개수를 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.


매개변수 설명

표준 무게 weight와 판정해야 할 사과 상자의 무게가 담긴 리스트 boxes가 solution 함수의 매개변수로 주어집니다.


return 값 설명

불량품 개수를 return 해주세요.


예시
weight boxes return
600 [653, 670, 533, 540, 660] 2
예시 설명

문제에 나온 예와 같습니다.

def solution(weight, boxes): answer = 0 for x in boxes: if @@@: answer += 1 return answer

아래는 테스트케이스 출력을 해보기 위한 코드입니다.

weight = 600 boxes = [653, 670, 533, 540, 660] ret = solution(weight, boxes)

[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.

print("solution 함수의 반환 값은", ret, "입니다.")