반응형

 

문제 6

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

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

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

---

#####매개변수 설명
생성하고자 하는 비밀번호 password가 solution 함수의 매개변수로 주어집니다.
* password는 알파벳 대문자, 소문자, 숫자로만 이루어진 문자열입니다.
* password의 길이는 5 이상 15 이하입니다.

---

#####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, "입니다.")

 

[ 정답 보기 ]

더보기
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 >= '0' and p <= '9':
            digit_count += 1
    if capital_count >= 1 and small_count >= 2 and digit_count >= 2:
        answer = True
    else:
        answer = False
    return answer

 

문제 7

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

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

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

---

#####매개변수 설명
예산 money, 의자의 가격이 담긴 배열 chairs, 책상의 가격이 담긴 배열 desks가 solution 함수의 매개변수로 주어집니다.
* 예산 money는 1 이상 1,000 이하인 자연수입니다.
* 의자와 책상의 가격은 1 이상 1,000 이하인 자연수입니다.
* chairs와 desks의 길이는 1 이상 100 이하입니다.

---

#####return 값 설명

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

* 단, 가지고 있는 금액으로 의자와 책상을 하나씩 살 수 없는 경우에는 0을 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, "입니다.")

 

[ 정답 보기 ]

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

 

문제 8

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

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

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

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

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

---

#####매개변수 설명
수 number가 solution 함수의 매개변수로 주어집니다.
* 수 number는 1 이상 10,000 이하인 정수입니다.

---

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

---

#####예제

number return
120 99
23

#####예제 설명
예제 #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_@@@(@@@)
    convert_number = func_@@@(@@@)
    answer = func_@@@(@@@)
    return answer

#아래는 테스트케이스 출력을 해보기 위한 코드입니다.
number1 = 120
ret1 = solution(number1)

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

number2 = 23
ret2 = solution(number2)

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

 

[ 정답 보기 ]

더보기
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_b(number)
    convert_number = func_c(number, digit)
    answer = func_a(number, convert_number)
    return answer

 

문제 9

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

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


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

---

#####매개변수 설명
양말 색을 숫자로 표현해서 담은 배열 socks가 solution 함수의 매개변수로 주어집니다.
* 양말 색은 0 보다 크거나 같고 10 보다 작은 정수로 표현합니다.
* 양말 수는 1개 이상 100개 이하입니다.

---

#####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, "입니다.")

 

[ 정답 보기 ]

더보기
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

 

문제 10

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

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

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

---

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

* 표준 무게는 500 이상 10,000 이하입니다.
* 표준 무게는 항상 10으로 나누어 떨어집니다.
* 판정해야 할 사과 상자의 개수는 1개 이상 20개 이하입니다.
* 판정해야 할 사과 상자의 무게는 400 이상 12,000 이하입니다.

---

#####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, "입니다.")

 

[ 정답 보기 ]

더보기
def solution(weight, boxes):
    answer = 0
    for x in boxes:
        if x < weight * 9 / 10 or x > weight * 11 / 10:
            answer += 1
    return answer

 

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

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