6 분 소요

[PCCE 기출문제] 1번 / 출력

문제 설명

주어진 초기 코드는 변수에 데이터를 저장하고 출력하는 코드입니다. 아래와 같이 출력되도록 빈칸을 채워 코드를 완성해 주세요.


출력 예시

Spring is beginning
13
310

solution

string_msg = 'Spring is beginning'

int_val = 3

string_val = '3'

print(string_msg)
print(int_val + 10)
print(string_val + "10")

[PCCE 기출문제] 2번 / 피타고라스의 정리

문제 설명

직각삼각형이 주어졌을 때 빗변의 제곱은 다른 두 변을 각각 제곱한 것의 합과 같습니다.

피타고라스.jpg

직각삼각형의 한 변의 길이를 나타내는 정수 a와 빗변의 길이를 나타내는 정수 c가 주어질 때, 다른 한 변의 길이의 제곱, b_square 을 출력하도록 한 줄을 수정해 코드를 완성해 주세요.


제한사항

  • 1 ≤ a < c ≤ 100

입출력 예

입력 #1

3
5

출력 #1

16

입력 #2

9
10

출력 #2

19

디버깅(Debugging) 문제 안내

  • 디버깅(Debugging)은 이미 완성된 코드에서 버그를 찾아 수정하는 문제 타입입니다.
  • 1줄만 수정하여 버그를 고치세요.
  • 2줄 이상 수정할 경우, 실행 결과에 에러 메시지가 표시됩니다.

solution

a = int(input())
c = int(input())

b_square = c**2 - a**2
print(b_square)

[PCCE 기출문제] 3번 / 나이 계산

문제 설명

나이를 세는 방법은 여러 가지가 있습니다. 그중 한국식 나이는 태어난 순간 1살이 되며 해가 바뀔 때마다 1살씩 더 먹게 됩니다. 연 나이는 태어난 순간 0살이며 해가 바뀔 때마다 1살씩 더 먹게 됩니다. 각각 나이의 계산법은 다음과 같습니다.

한국식 나이 : 현재 연도 - 출생 연도 + 1 연 나이 : 현재 연도 - 출생 연도

출생 연도를 나타내는 정수 year와 구하려는 나이의 종류를 나타내는 문자열 age_type이 주어질 때 2030년에 몇 살인지 출력하도록 빈칸을 채워 코드를 완성해 주세요. age_type이 “Korea”라면 한국식 나이를, “Year”라면 연 나이를 출력합니다.


제한사항

  • 1950 ≤ year ≤ 2030
  • age_type은 “Korea” 또는 “Year”만 주어집니다.

입출력 예

입력 #1

2000
Korea

빈칸 채우기 문제

solution

year = int(input())
age_type = input()

if age_type == "Korea":
    answer = 2030 - year + 1

elif age_type == "Year":
    answer = 2030 - year


print(answer)

[PCCE 기출문제] 4번/ 저축

문제 설명

진우는 돈을 모으기 위해 저축을 하려고 합니다. 목표로 하는 금액은 100만 원이며, 첫 달에 일정 금액을 넣은 뒤 70만 원까지는 매월 조금씩 저축하다가 70만 원 이후부터는 월 저축량을 늘려 빠르게 목표 금액을 달성하고자 합니다.

첫 달에 저축하는 금액을 나타내는 정수 start, 두 번째 달 부터 70만 원 이상 모일 때까지 매월 저축하는 금액을 나타내는 정수 before, 100만 원 이상 모일 때 까지 매월 저축하는 금액을 나타내는 정수 after가 주어질 때, 100만 원 이상을 모을 때까지 걸리는 개월 수를 출력하도록 빈칸을 채워 코드를 완성해 주세요.


제한사항

  • 0 ≤ start ≤ 99
  • 1 ≤ beforeafter ≤ 25

입출력 예

입력 #1

28
6
8

출력 #1

12

solution

start = int(input())
before = int(input())
after = int(input())

money = start
month = 1
while money < 70:
    money += before
    month += 1
while money < 100:
   	money += after
    month += 1

[PCCE 기출문제] 5번 / 산책

문제 설명

여름이는 강아지를 산책시키려고 합니다. 여름이는 2차원 좌표평면에서 동/서/남/북 방향으로 1m 단위로 이동하면서 강아지를 산책시킵니다. 산책루트가 담긴 문자열 route가 주어질 때, 도착점의 위치를 return하도록 빈칸을 채워 solution함수를 완성해 주세요.

  • route는 “N”, “S”, “E”, “W”로 이루어져 있습니다.
    • “N”은 북쪽으로 1만큼 움직입니다.
    • “S”는 남쪽으로 1만큼 움직입니다.
      • 북쪽으로 -1만큼 움직인 것과 같습니다.
    • “E”는 동쪽으로 1만큼 움직입니다.
    • “W”는 서쪽으로 1만큼 움직입니다.
      • 동쪽으로 -1만큼 움직인 것과 같습니다.
  • 출발점으로부터 [동쪽으로 떨어진 거리, 북쪽으로 떨어진 거리]형태로 강아지의 최종 위치를 구해서 return해야 합니다.
  • 출발점을 기준으로 서쪽, 남쪽에 있는 경우는 동쪽, 북쪽으로 음수만큼 떨어진 것으로 표현합니다.
    • 출발점으로부터 동쪽으로 2, 북쪽으로 3만큼 떨어졌다면 [2, 3]을 return 합니다.
    • 출발점으로부터 서쪽으로 1, 남쪽으로 4만큼 떨어졌다면 [-1, -4]를 return 합니다.

제한사항

  • 1 ≤ route의 길이 ≤ 20
  • route는 “N”, “S”, “E”, “W”로만 이루어져 있습니다.

입출력 예

route result
“NSSNEWWN” [-1, 1]
“EESEEWNWSNWWNS” [0, 0]

solution

def solution(route):
    east = 0
    north = 0
    for i in route:
        if i == "N":
            north += 1
        elif i == "S" :
            north -= 1
        elif i == "E" :
            east += 1
        elif i == "W" :
            east -= 1
    return [east, north]

[PCCE 기출문제] 6번 / 가채점

문제 설명

A반 학생들은 시험이 끝난 뒤 성적이 나오기 전 자기 시험지를 가채점해 보았습니다. 이후에 선생님이 실제 성적을 불러 줄 때 가채점한 점수와 실제 성적이 다른 학생들이 있어 선생님께 문의를 하려고 합니다.

성적을 문의하려는 학생들의 번호가 담긴 정수 리스트 numbers와 가채점한 점수가 성적을 문의하려는 학생 순서대로 담긴 정수 리스트 our_score, 실제 성적이 번호 순서대로 담긴 정수 리스트 score_list가 주어집니다. 주어진 solution 함수는 가채점한 점수가 실제 성적과 동일하다면 “Same”을, 다르다면 “Different”를 순서대로 리스트에 담아 return하는 함수입니다. solution 함수가 올바르게 작동하도록 한 줄을 수정해 주세요.


제한사항

  • 1 ≤ numbers의 길이 = our_score의 길이 ≤ 10
    • 1 ≤ numbers의 원소 ≤ 31
    • 0 ≤ our_score의 원소 ≤ 100
    • our_score[i]numbers[i]번 학생이 가채점한 점수입니다.
    • numbers는 중복된 원소를 가지지 않습니다.
  • 2 ≤ score_list의 길이 ≤ 31
    • 0 ≤ score_list의 원소 ≤ 100
    • score_list에는 실제 성적이 [1번 학생 성적, 2번 학생 성적, 3번 학생 성적 …] 순서로 들어있습니다.

입출력 예

numbers our_score score_list result
[1] [100] [100, 80, 90, 84, 20] [“Same”]
[3, 4] [85, 93] [85, 92, 38, 93, 48, 85, 92, 56] [“Different”, “Same”]

solution

def solution(numbers, our_score, score_list):
    answer = []
    for i in range(len(numbers)):
        if our_score[i] == score_list[numbers[i]-1]:
            answer.append("Same")
        else:
            answer.append("Different")
    
    return answer

[PCCE 기출문제] 7번 / 가습기

문제 설명

상우가 사용하는 가습기에는 “auto”, “target”, “minimum”의 세 가지 모드가 있습니다. 가습기의 가습량은 0~5단계로 구분되며 각 모드 별 동작 방식은 다음과 같습니다.

  • “auto” 모드
    • 습도가 0 이상 10 미만인 경우 : 5단계
    • 습도가 10 이상 20 미만인 경우 : 4단계
    • 습도가 20 이상 30 미만인 경우 : 3단계
    • 습도가 30 이상 40 미만인 경우 : 2단계
    • 습도가 40 이상 50 미만인 경우 : 1단계
    • 습도가 50 이상인 경우 : 0단계
  • “target” 모드
    • 습도가 설정값 미만일 경우 : 3단계
    • 습도가 설정값 이상일 경우 : 1단계
  • “minimum”모드
    • 습도가 설정값 미만일 경우 : 1단계
    • 습도가 설정값 이상일 경우 : 0단계

상우가 설정한 가습기의 모드를 나타낸 문자열 mode_type, 현재 공기 중 습도를 나타낸 정수 humidity, 설정값을 나타낸 정수 val_set이 주어질 때 현재 가습기가 몇 단계로 작동 중인지 return하도록 빈칸을 채워 solution 함수를 완성해 주세요.


제한사항

  • mode_type은 “auto”, “target”, “minimum” 세 가지 중 하나의 값을 갖습니다.
  • 0 ≤ humidity, val_set ≤ 100

입출력 예

mode_type humidity val_set result
“auto” 23 45 3
“target” 41 40 1
“minimum” 10 34 1

solution

def func1(humidity, val_set):
    if humidity < val_set:
        return 3
    return 1

def func2(humidity):
    if humidity >= 50:
        return 0
    elif humidity >= 40:
        return 1
    elif humidity >= 30:
        return 2
    elif humidity >= 20:
        return 3
    elif humidity >= 10:
        return 4
    elif 0 <= humidity < 10:
        return 5

def func3(humidity, val_set):
    if humidity < val_set:
        return 1
    return 0

def solution(mode_type, humidity, val_set):
    answer = 0
    if mode_type == "auto":
        answer = func2(humidity)
    elif mode_type == "target":
        answer = func1(humidity, val_set)
    elif mode_type == "minimum":
        answer = func3(humidity, val_set)
    return answer

[PCCE 기출문제] 8번 / 창고 정리

문제 설명

선빈이는 게임을 즐기던 중 가지고 있는 물건이 너무 많아 창고 정리를 하기로 했습니다. 선빈이가 보유한 게임 속 창고는 여러 칸으로 나누어져 있고 각 칸에는 물건들이 담겨있습니다. 창고를 정리할 방법을 고민하던 선빈이는 같은 물건이 여러 칸에 나누어 들어있는 것을 발견하고 우선 같은 물건끼리 최대한 겹쳐쌓는 방식으로 창고를 정리하기로 했습니다. 선빈이의 창고에 들어있는 물건의 이름과 개수는 리스트 형태로 주어지며, 한 칸에 겹쳐질 수 있는 물건의 개수에는 제한이 없다고 가정합니다.

예를 들어 창고의 각 칸에 담겨있는 물건의 이름이storage = ["pencil", "pencil", "pencil", "book"], 각 물건의 개수가 num = [2, 4, 3, 1]이라면 연필과 책을 한 칸에 각각 겹쳐 쌓아 간단하게 clean_storage = ["pencil", "book"], clean_num = [9, 1]로 만들 수 있습니다. pencil book javacpp.jpg

주어진 solution 함수는 정리되기 전 창고의 물건 이름이 담긴 문자열 리스트 storage와 각 물건의 개수가 담긴 정수 리스트 num이 주어질 때, 정리된 창고에서 개수가 가장 많은 물건의 이름을 return 하는 함수입니다. solution 함수가 올바르게 작동하도록 한 줄을 수정해 주세요.


제한사항

  • 1 ≤storage의 길이 =num의 길이 ≤ 30
    • storage[i]는 영어 대소문자로 이루어져 있습니다.
    • 물건은 대소문자를 구분합니다. 즉, “Book”과 “book”은 서로 다른 물건입니다.
    • 1 ≤ storage[i]의 길이 ≤ 30
    • 1 ≤ num[i] ≤ 20
    • num[i]에는 storage[i]에 해당하는 물건의 개수가 담겨있습니다.
  • 가장 개수가 많은 물건이 두 가지 이상인 경우는 없습니다.
  • 한 칸에는 한 종류의 물건만 들어갈 수 있습니다.

입출력 예

storage num result
[“pencil”, “pencil”, “pencil”, “book”] [2, 4, 3, 1] “pencil”
[“doll”, “doll”, “doll”, “doll”] [1, 1, 1, 1] “doll”
[“apple”, “steel”, “leaf”, “apple”, “leaf”] [5, 3, 5, 3, 7] “leaf”
[“mirror”, “net”, “mirror”, “net”, “bottle”] [4, 1, 4, 1, 5] “mirror”

solution

def solution(storage, num):
    clean_storage = []
    clean_num = []
    for i in range(len(storage)):
        if storage[i] in clean_storage:
            pos = clean_storage.index(storage[i])
            clean_num[pos] += num[i]
        else:
            clean_storage.append(storage[i])
            clean_num.append(num[i])
            
    # 아래 코드에는 틀린 부분이 없습니다.
            
    max_num = max(clean_num)
    answer = clean_storage[clean_num.index(max_num)]
    return answer

댓글남기기