본문 바로가기

파이썬(문제풀이)

문제를 통한 파이썬 공부 #19

18일차 문제 답안

 

실습예제51. 2제곱, 3제곱, 4제곱을 할 수 있는 Factory 함수를 만들려고 한다.

<pass>에 코드를 작성하여 two 함수를 완성하세요.

def data(n): 
    def square(): 
        <pass> 
    return square 
a = data(2) 
b = data(3) 
c = data(4) 
print(a(10)) 
print(b(10)) 
print(c(10))

 

실습예제52. 1 - 9까지의 숫자 중 하나를 이력하면 그 단의 구구단 결과를 한 줄에 출력하는 프로그램을 작성하세요.

 

>>입력

3

>>출력

3 6 9 12 15 18 21 24 27

실습예제53. inventory 딕셔너리에서 메로나의 재고를 화면에 출력하라.

 

>>입력

inventory = {"메로나": [300, 20], "비비빅": [400, 3], "죠스바": [250, 100]}
>>출력
20 개

실습예제54. 다음의 딕셔너리로부터 key 값으로만 구성된 리스트를 생성하라.

 

>>입력

icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}

>>출력

['탱크보이', '폴라포', '빵빠레', '월드콘', '메로나']

실습예제55. 정사각형의 한 변의 길이 n을 입력 받은 후 다음과 같은 문자로 된 정사각형 형태로 출력하는 프로그램을 작성하세요.

<처리조건>

문자의 진행 순서는 맨 오른쪽 아래에서 위쪽으로 'A'부터 차례대로 채워나가는 방법으로 'Z' 다음에는 'A'부터 반복된다.

 

>>입력

정사각형 한 변의 길이 n(n의 범위는 1이상 100이하의 정수)을 입력받는다.

>>출력

 또 다른 답안

19일차 문제

 

실습예제56. 새 학기를 맞아 글초롱이네 반은 반장 선거를 하기로 했습니다. 그런데 표를 하나씩 개표하는 과정이 너무 번거럽게 느껴진 당신은 학생들이 뽑은 후보들을 입력 받으면 뽑힌 학생의 이름과 받은 표 수를 출력하는 프로그램을 작성하기로 하였습니다.

 

>>입력

첫 줄에 학생들이 뽑은 후보들이 입력됩니다.

석우 석우 글초롱 글초롱 동우 동우 글초롱 글초롱

>>출력

글초롱이 총 4표로 반장이 되었습니다.

실습예제 57. 글초롱은 아르바이트로 영어 학원에서 단어 시험지를 채점하는 일을 하고 있다. 글초롱이 일하는 학원은 매번 1위부터 3위까지의 학생에게 상으로 사탕을 준다. 그런데 오늘은 마침 사탕이 다 떠렁져서 글초롱이 채점을 하고 점수를 보내면 당신은 아이들을 숫자만큼 사탕을 사러 가기로 했다.

학생들의 점수를 공백으로 구분하여 입력 받는다. 1위~3위 학생은 여러명 일 수 있고 1~3위 학생 중 중복되는 학생까지 포함하여 사탕을 사기로 한다.

 

>>입력

96 86 75 66 55 96 85 96 96 95

>>출력

6

실습예제58. 사용자로부터 달러, 엔, 유로, 또는 위안 금액을 입력받은 후 이를 원으로 변환하는 프로그램을 작성하라. 각 통화별 환율은 다음과 같다. 사용자는 100 달러, 1000 엔, 13 유로, 100 위안과 같이 금액과 통화명 사이에 공백을 넣어 입력한다고 가정한다.

 

        통화명            환율

달러 1167
1.096
유로 1268
위안 171

>>입력

100 달러

>>출력

116700.00 원

 

실습예제 59. 주민등록번호는 13자리로 구성되는데 마지막 자리수는 주민등록번호의 유효성을 체크하는데 사용된다. 먼저 앞에서부터 12자리의 숫자에 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5를 차례로 곱한 뒤 그 값을 전부 더한다. 연산 결과 값을 11로 나누면 나머지가 나오는데 11에서 나머지를 뺀 값이 주민등록번호의 마지막 번호가 된다.

  8 2 1 0 1 0 - 1 6 3 5 2 1 0
x 2 3 4 5 6 7   8 9 2 3 4 5 
-----------------------------
1차 계산: (8*2 + 2*3 + 1*4 + 0*5 + 1*6 + 0*7 + 1*8 + 6*9 + 3*2 + 5*3 + 2*4 + 1*5) = (128 % 11) = 7
2차 계산: 11 -7 = 4

위와 같이 821010-1635210에 대해서 계산을 해보면 마지막 자리는 4가 되어야 함을 알 수 있다. 즉, 821010-1635210은 유효하지 않은 주민등록번호임을 알 수 있다.

다음과 같이 사용자로부터 주민등록번호를 입력받은 후 주민등록번호가 유효한지를 출력하는 프로그램을 작성하라.

 

>>입력

주민등록번호: 821010-1635210

>>출력

유효하지 않은 주민등록번호입니다.

실습예제 60. 정사각형의 한 변의 길이 n을 입력 받은 후 다음과 같은 문자로 된 정사각형 형태로 출력하는 프로그램을 작성하세요.

<처리조건>

문자의 진행 순서는 왼쪽 위에서 아래쪽으로 'A'부터 차례대로 채워나가고 다시 오른쪽 아래에서 위쪽으로 채워나가는 방법으로  'Z' 다음에는 'A'부터 반복된다.

 

>>입력

정사각형 한 변의 길이 n(n의 범위는 1이상 100이하의 정수)을 입력받는다.

>>출력