문제21 : set은 어떻게 만드나요?
다음 중 set을 만드는 방법이 아닌 것은?
① x = {1,2,3,5,6,7}
② x = {}
③ x = set('python')
④ x = set(range(5))
⑤ x = set()
2번
이유는 print(type(x))를 하게되면 class 'dict'으로 출력되기 때문이다.
참고)
중괄호를 사용하는 것은 dictionary와 비슷하지만, key가 없습니다. 값만 존재합니다.
set은 순서가 없고 중복을 허락하지 않게 출력됨
문제22 : 배수인지 확인하기
다음 중 변수 i가 6의 배수인지 확인하는 방법으로 올바른 것은?
① i/6 == 0
② i%6 == 0
③ i&6 == 0
④ i|6 == 0
⑤ i//6 == 0
2번
나머지가 0이라면 배수이므로
문제23 : OX문제
print(10/2)의 출력 결과는 5이다.
x
5.0입니다. float형
문제24 : 대문자로 바꿔주세요
민지를 위해 이름이 입력되면 전부 대문자로 출력되는 프로그램을 만들어주세요.
입력marry
출력
MARRY
user_input = input()
print(user_input.upper())
참고) 내장메소드를 알고 싶을때
print(dir('asdf'))
문제25 : 원의 넓이를 구하세요
반지름의 길이 x 반지름의 길이 x 3.14
입력을 반지름의 길이로 정수 n이 주어지면 원의 넓이를 반환하는 함수를 만들어 주세요
입력7
출력
153.86
내 풀이.
user_input = int(input())
print(user_input*user_input*3.14)
선생님 풀이.
def solution(input_r):
circle = input_r*input_r*3.14
return circle
r = int(input())
print(solution(r))
문제26 : 행성문제2
수성,금성,지구,화성,목성,토성,천왕성,해왕성이 있습니다. 이 행성들의 영어 이름은
Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune입니다.
행성의 한글 이름을 입력하면 영어 이름을 반환하는 프로그램을 만들어 주세요
입력지구
출력
Earth
user_input = input()
solar = {"수성" : 'Mercury', "금성" : 'Venus' ,"지구": 'Earth', "화성" : 'Mars' ,"목성" : 'Jupiter' ,"토성" : 'Saturn' ,"천왕성" : 'Uranus' ,"해왕성" : 'Neptune'}
print(solar[user_input])
참고)
딕셔너리 타입은 immutable한 키(key)와 mutable한 값(value)으로 맵핑되어 있는 순서가 없는 집합입니다
문제27 : 딕셔너리 만들기
첫 줄에는 학생의 이름이 공백으로 구분되어 입력되고, 두번째 줄에는 그 학생의 수학 점수가 공백으로 구분되어 주어집니다.
두 개를 합쳐 학생의 이름이 key이고 value가 수학 점수인 딕셔너리를 출력해주세요
입력Yujin Hyewon 70 100
출력
{'Yujin' : 70 , 'Hyewon' : 100}
연습)
key = input().split(' ')
value = map(int,input().split(' '))
# 이때 value는 map형태로 되어 있기때문에 이를 다시 list로 변환해줘야됨
print(key,list(value))
답)
key = input().split(' ')
value = map(int,input().split(' '))
result = dict(zip(key,value))
print(result)
참고)
def f(n):
return n **2
print(list(map(f,[2,3,4])))
결과 : [4,9,16]
이 처럼 map은 어떤 함수와 순회 가능한 객체를 맵핑해서 그것의 결과값을 출력해줌
a = [1,2,3,4]
b = [100,200,300,400]
c = ['a','b','c','d']
print(list(zip(a,b,c)))
결과 : [(1,100,'a'),(2,200,'b'),(3,300,'c'),(4,400,'d')]
문제28 : 2-gram
2-gram이란 문자열에서 2개의 연속된 요소를 출력하는 방법입니다. 예를 들어 'Python'을 2-gram으로 반복해 본다면 다음과 같은 결과가 나옵니다.Py yt th ho on
user_input = input()
for i in range(len(user_input)-1):
print(user_input[i]+user_input[i+1])
문제29 : 대문자만 지나가세요
알파벳 하나만을 입력하고 그 알파벳이 대문자이면 YES 아니면 NO를 출력하는 프로그램
입력A
출력
YES
입력
d
출력
NO
user_input = input()
if ord(user_input) >= 65 and ord(user_input) <= 90 :
print('YES')
else :
print('NO')
참고)
문제30 : 문자열 속 문자 찾기
문자 pineapple에서 apple이라는 문자가 숨겨져 있습니다. 하연이는 이렇듯 문자열 속에 숨어있는 문자를 찾아보려고 합니다
입력으로 첫 줄에 문자열이 주어지고 둘째 줄에 찾을 문자가 주어지면 그 문자가 시작하는 index를 반환하는 프로그램을 만들어 주세요
입력pineapple is yummy apple
출력
4
data = input()
word = input()
print(data.find(word))
참고)
print('hello'.find('?'))
print('hello'.index('?'))
find는 찾는 문자가 없으면 -1을 리턴하고 index는 찾으려는 문자가 없으면 에러가 발생
문제31 : 다음 리스트의 내장함수의 시간 복잡도가 O(1)이 아닌 것은?
① l[i]
② l.append(5)
③ l[a:b]
④ l.pop()
⑤ l.clear()
참고) 내장함수 시간복잡도
문제32 : 문자열 만들기
원영이를 위해 문자열을 입력받으면 단어의 갯수를 출력하는 프로그램을 작성해 주세요
입력저 넓은 세상을 네 눈앞에 그려봐 네 진심을 느껴봐
출력
9
user_input = input()
l = list(user_input.split())
print(len(l))
문제33 : 거꾸로 출력하기
한 줄에 여러개의 숫자가 입력되면, 역순으로 그 숫자들을 하나씩 출력하는 프로그램을 작성하시오.
입력1 2 3 4 5
출력
5 4 3 2 1
입력
2 4 6 7 8
출력
8 7 6 4 2
내 풀이.
user_input = map(int, input().split(' '))
input_list = list(user_input)
for i in range(len(input_list)-1, -1, -1) :
print(input_list[i], end=' ')
선생님 풀이.
user_input = input()
l = list(user_input.split())
l = [int(i) for i in l]
for i in range(len(l)-1, -1, -1) :
print(l[i], end=' ')
숭인이 참고자료)
문제34 : sort 구현하기
키가 주어지면 순서대로 제대로 섰는지 확인하는 프로그램을 작성해보자
입력176 156 155 165 166 169
출력
NO
내 풀이.
user_input = map(int,input().split(' '))
l = list(user_input)
if l == sorted(l) :
print("YES")
else :
print("NO")
선생님 풀이.
user_input = input()
l = list(user_input.split())
l = [int(i) for i in l]
if l != sorted(l) :
print("NO")
else :
print("YES")
참고)
l =[1,2,3,4,5,6]
l.sort()
print(l)
결과 : [1,2,3,4,5,6,7,8]
l =[1,2,3,4,5,6]
print(sorted(l))
print(l)
결과 :
[1,2,3,4,5,6,7,8]
[1,2,3,4,7,8,5,6]
문제35 : Factory함수 사용하기
2제곱, 3제곱, 4제곱을 할 수 있는 Factory함수를 만들려고 합니다.
$에 코드를 작성하여 two함수를 완성하세요def one(n): def two(): <$> return two a = one(2) b = one(3) c = one(4) print(a(10)) print(b(10)) print(c(10))
def one(n):
def two(value):
return value ** n
return two
a = one(2)
b = one(3)
c = one(4)
print(a(10))
print(b(10))
print(c(10))
문제36 : 구구단 출력하기
1~9까지의 숫자 중 하나를 입력하면 그 단의 구구단 결과를 한 줄에 출력하는 프로그램을 작성하세요
입력2
출력
2 4 6 8 10 12 14 16 18
내 풀이.
user_input = int(input())
for i in range(1,10) :
print(user_input*i, end=' ')