본문 바로가기
Python 코딩도장

파이썬 코딩도장 Unit 03~Unit 12 심사문제 풀이

by chanfficial 2022. 1. 8.

Unit 03

Q. Hello, world!' 두 개를 각 줄에 출력하는 프로그램을 만드세요(대소문자 구분과 띄어쓰기가 정확해야 합니다). 정답에는 출력 결과를 만족하는 전체 소스 코드를 입력해야 합니다.

정답 :

print('Hello, world!')
print('Hello, world!')
- 문자열을 출력하려면 print 함수를 사용해야 하고, 두 개를 각 줄에 출력해야 하므로 print 함수를 두 번 사용했다.

 

 

Unit 05

Q. L이라는 게임에서 "왜곡"이라는 스킬이 AP * 0.6 + 225의 피해를 입힙니다. 참고로 이 게임에서 AP(Ability Power, 주문력)는 마법 능력치를 뜻합니다. 다음 소스 코드를 완성하여 스킬의 피해량이 출력되게 만드세요.

  • AP: 102

정답 :

print(102 * 0.6 + 225) # 286.2
- 스킬의 피해량을 구하는 식이 AP * 0.6 + 225 이고 AP = 12 이므로 이를 대입하여 계산했다.
 

Unit 06

Q 6.7. 다음 소스 코드를 완성하여 50, 100, None이 각 줄에 출력되게 만드세요.
  • print(a) 결과 : 50
  • print(b) 결과 : 100
  • print(c) 결과 : None

정답 :

a = 50
b = 100
c = None
- a와 b를 출력했을 때 각각 50, 100이 출력되었으므로 각각 50, 100을 할당 해 주었고, c는 아무것도 없는 상태인 None이 출력되었으므로 빈 변수 None을 할당 해 주었다.
Q 6.7. 표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 평균 점수를 출력하는 프로그램을 만드세요(input에서안내 문자열은 출력하지 않아야 합니다). 단, 평균 점수를 출력할 때는 소수점 이하 자리는 버립니다(정수로 출력)

정답 :
a, b, c, d = map(int, input().split())
print(int((a+b+c+d)/4))​
- 입력 값이 국어, 수학, 영어, 과학 네 과목의 점수로 총 4개 이기 때문에, int와 input().split()을 넣으면 split의 결과를 모두 int로 변환해주는 map을 사용하여 값을 입력 받았고, 네 과목의 평균 점수를 정수 값으로 출력해야 하기 때문에 네 과목의 점수를 더하여 4로 나눈 값에 int를 붙여 정수 값으로 변환했다.

 

Unit 07

Q. 표준 입력으로 년, 월, 일, 시, 분, 초가 입력됩니다. 다음 소스 코드를 완성하여 입력된 날짜와 시간을 년-월-일T시:분:초 형식으로 출력되게 만드세요.

정답 :

print(year, month, day, sep='-', end='T')

- '년-월-일T' 가 출력되어야 하므로 출력 값들 사이에 '-'문자를 넣을 수 있는 sep을 지정해주고 바로 다음 같은 줄에 T가 출력될 수 있도록 end를 지정했다.

 

Unit 8

Q. 표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 국어는 90점 이상, 영어는 80점 초과, 수학은 85점 초과, 과학은 80점 이상일 때 합격이라고 정했습니다(한 과목이라도 조건에 만족하지 않으면 불합격). 다음 소스 코드를 완성하여 합격이면 True, 불합격이면 False가 출력되게 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다).

   정답 :

korean, english, math, science = map(int, input().split())
print(korean>=90 and english>80 and math>85 and science>=80)

- 먼저 국어, 영어, 수학, 과학 점수가 한 줄에 입력되므로 input에서 split을 사용한 뒤 변수 네 개에 저장했고, 이때 input().split()의 결과는 문자열 상태이므로 map에 int를 사용하여 정수로 변환해준 값을 입력 받은 다음 조건에 맞게 비교 연산자를 사용하여(초과는 >, 이상은 >= 사용, 한 과목이라도 조건을 만족하지 않으면 안되니 and연산자 사용) 답을 출력했다.

 

Unit 9

Q. 다음 소스 코드를 완성하여 실행 결과대로 문자열이 출력되게 만드세요.

   정답 : 

s = ''''Python' is a "programming language"
that lets you work quickly
and
integrate systems more effectively.'''

- 문장을 여러 줄로 출력할 수 있고 문자열 안에 작은 따옴표나 큰 따옴표를 사용해도 에러가 나지 않는 ''' '''를 사용하여 4줄의 문장 출력이 가능하도록 했다.

 

Unit 10

Q. 표준 입력으로 정수가 입력됩니다. range의 시작하는 숫자는 -10, 끝나는 숫자는 10이며 입력된 정수만큼 증가하는 숫자가 들어가도록 튜플을 만들고, 해당 튜플을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다).

   정답 :

a = int(input())
t = tuple(range(-10, 10, a))
print(t)

- -10에서 10까지 입력받은 정수만큼 증가하는 튜플을 range를 통해 만들어야 하므로 일단 정수를 입력받을 수 있게 int(input())을 사용하여 입력받은 정수를 변수 a에 할당하고, 변수 t에 입력받은 정수만큼 증가하는 튜플을 만들어 할당한 다음 출력하였다.

 

Unit 11

Q 11.8. 표준 입력으로 숫자 또는 문자열 여러 개가 입력되어 리스트 x에 저장됩니다(입력되는 숫자 또는 문자열의 개수는 정해져 있지 않음). 다음 소스 코드를 완성하여 리스트 x의 마지막 요소 5개를 삭제한 뒤 튜플로 출력되게 만드세요.

    정답 :

del x[-5:]
print(tuple(x))

- 리스트 x의 마지막 요소 5개를 삭제하기 위해 뒤에서 부터 삭제할 수 있도록 인덱스에 음수를 지정했고 del x[-5:]로 뒤에서부터 5번째 인덱스 부터 마지막 인덱스 까지 슬라이스를 삭제했고 이를 튜플로 출력했다.

 

Q 11.9. 표준 입력으로 문자열 두 개가 각 줄에 입력됩니다(문자열의 길이는 정해져 있지 않음). 첫 번째 문자열에서 인덱스가 홀수인 문자와 두 번째 문자열에서 인덱스가 짝수인 문자를 연결하여 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 연결 순서는 첫 번째 문자열, 두 번째 문자열 순입니다. 그리고 0은 짝수로 처리합니다.

정답 :

a = input()
b = input()
print(a[1::2]+b[::2])

- 먼저 문자열 두 개를 각각 변수 a, b로 지정해 input()으로 입력 받은 다음, 첫번 째 문자열에서 인덱스가 홀수인 문자와 두 번째 문자열에서 인덱스가 짝수인 문자만 연결하여 출력하도록 +를 사용하였다.

 

Unit 12

Q. 표준 입력으로 문자열 여러 개와 숫자(실수) 여러 개가 두 줄로 입력됩니다. 입력된 첫 번째 줄은 키, 두 번째 줄은 값으로 하여 딕셔너리를 생성한 뒤 딕셔너리를 출력하는 프로그램을 만드세요. input().split()의 결과를 변수 한 개에 저장하면 리스트로 저장됩니다.

정답 :

key = input().split()
value = map(float, input().split())
test_dict = dict(zip(key,value))
print(test_dict)

- input().split()을 사용하여 변수 한 개에 할당하면 입력값을 리스트로 저장할 수 있기 때문에 문자열과 숫자를 두 줄로 입력받기 위해 두 번 사용하였고, 숫자를 실수로 바꿔주기 위해 map에 float을 사용했다. 만들어진 리스트 두 개를 zip에 넣은 다음 다시 dict에 넣어서 딕셔너리로 만들어준 다음 이를 출력했다.