문제 : count 사용하기
학생들이 뽑은 후보들을 입력받으면 뽑힌 학생의 이름과 받은 표 수를 출력하는 프로그램을 작성하기로 했다
입력 - 첫 줄에 학생들이 뽑은 후보들이 입력됩니다.원영 원영 은비 은비 은비 채연 채연
출력 - '은비가 총 4표로 반장이 되었습니다.'와 같습니다.
은비(이)가 총 4표로 반장이 되었습니다.
l = input().split()
count = 0
for i in range(len(l)-1) :
if l.count(l[i-1]) < l.count(l[i]) :
count = i
print(count)
print(l[count])
print('{}'(이)가 총 {}표로 반장이 되었습니다.'.format(l[count]),l.count(l[count])))
참고)
format에 대해서 클릭
문제 : 호준이의 아르바이트
호준이는 아르바이트로 영어 학원에서 단어 시험지를 채점하는 일을 하고 있다. 호준이가 일하는 학원은 매번 1위부터 3위까지의 학생에게 상으로 사탕을 준다. 그런데 오늘은 마침 사탕이 다 떨어져서 호준이가 채점을 하고 점수를 보내면, 당신이 아이들의 숫자만큼 사탕을 사러 가기로 했다. 학생들의 점수를 공백으로 구분하여 입력받는다. 1위~3위 학생은 여러명일 수 있고 1~3위 학생 중 중복되는 학생까지 포함하여 사탕을 사기로 한다.
입력97 86 75 66 55 97 85 97 97 95
출력
6
list로 품
score_list =[97,86,75,66,55,97,85,97,97,95]
count = 0
for i in range(3) :
# 97
max_value = max(score_list)
for j in range(len(score_list)) :
if max_value in score_list :
count+=1
score_list.remove(max_value)
print(count)
set으로 품
score_list =[97,86,75,66,55,97,85,97,97,95]
score_set = set(score_list)
count = 0
for i in range(3) :
max_value = max(score_set) #97
count+=score_list.count(max_value)
score_set.remove(max_value)
print(count)
참고)
문제 : 오타 수정하기
문장의 모든 e를 q로 잘못 친 것을 발견했습니다.
숭인이는 프로그램을 돌려 재빠르게 모든 q를 e로 바꾸는 프로그램을 작성하려고 합니다.
문장이 입력되면 모든 q를 e로 바꾸는 프로그램을 작성해 주세요.
입력querty
출력
euerty
입력
La viq qn rosq
출력
La vie en rose
userInput = 'querty'
print(userInput.replace("q", "e"))
문제 : 놀이동산에 가자
모든 놀이기구는 한번에 타는 인원수에는 제한이 없지만 제한 무게를 넘으면 무조건 다음 기구를 타야 합니다.
원범이와 친구들이 총 몇 명 탈 수 있는지 알 수 있는 프로그램을 작성해 주세요.
첫번째 줄에서 제한 무게가 주어지고 두번째 줄에서는 함께한 친구들의 수 n이 주어집니다. 그 다음 차례대로 탑승할 친구들이 몸무게가 주어집니다. 몸무게는 무작위로 주어집니다.
입력50 5 20 20 20 20 20
출력
2
limit_weight = int(input())
n = int(input())
list_weight = list(map(int, input().split()))
count =0
maximum = 0
for i in range(len(list_weight)) :
maximum += list_weight[i]
if limit_weight < maximum :
break
count+=1;
print(count)
문제 : 소수판별
숫자가 주어지면 소수인지 아닌지 판별하는 프로그램 작성
소수이면 YES, 소수가 아니면 NO로 출력
(소수 : 1과 자기 자신만으로 나누어떨어지는 1보다 큰 양의 정수)
입력11
출력
YES
입력
6
출력
NO
input = 1
count = 0
for i in range(2, input) :
if input%i == 0 :
count+=1
else :
continue
if count > 0 or input == 1:
print("NO")
else :
print("YES")
def prime(num) :
if num != 1 :
for i in range(2,num) :
if num%i == 0 :
return False
else :
return False
return True
sosu = 2
if prime(sosu) :
print('YES')
else :
print('NO')
문제 : 2020년
문제43 : 10진수를 2진수로
사용자에게 숫자를 입력받고 이를 2진수를 바꾸고 그 값을 출력해주세요
(bin 함수를 사용하지 않고 풀어주세요)
입력13
출력
1101
num = 13
binary_list = []
while num != 0:
binary_list.append(num%2)
num = int(num/2)
print("".join(map(str, list(reversed(binary_list)))))
문제 : 각 자리수의 합
사용자가 입력한 양의 정수의 각 자리수의 합을 구하는 프로그램을 만들어주세요
예를 들어 18234 = 1+8+2+3+4 이고 정답은 18입니다.
3849 = 3+8+4+9이고 정답은 24입니다.
입력1234
출력
10
num = 4567
sum = 0
for i in str(num) :
sum += int(i)
print(sum)
참고)
list = [2,3,4,5]
for index,value in enumerate(list):
print(index,value)
#인덱스랑 값이 나옴
문제 : time함수 사용하기
python의 모듈 중 하나인 time 모듈은 1970년 1월 1일 0시 0분 0초 이후로부터 지금까지 흐른 시간을 초단위로 반환합니다. 이를 이용하여 현재 연도(2019)를 출력해보세요
import time
now_year = time.strftime('%Y',time.localtime(time.time()))
print(now_year)
참고)
import time
time.strftime('포멧',시간객체)
포멧 : %A 요일 , %Y 연 , %B 문자 월 / %m 숫자 월 , %d 일 , %c 날짜와 시간
시간객체 : localtime(time.time())
문제 : str 자료형의 응용
1부터20까지의(20 포함) 모든 숫자를 일렬로 놓고 모든 자리수의 총 합을 구하시오
예를 들어 10부터 15까지의 모든 숫자를 일렬로 놓으면 101112131415이고 각 자리의 숫자를 21입니다.
def hap(num) :
sum = 0
for i in num :
sum+=int(i)
return sum
a,b = map(int,input().split())
str1 = ''
for i in range(a,b+1) :
str1 += str(i)
print(hap(str1))
문제 : set 자료형의 응용
구글 설문지를 배포하였으나 제주대학생들이 중복해서 n개씩 설문지를 제출하였습니다.
중복된 데이터들을 삭제하여 실제 접수 명단이 몇 명인지 알고 싶습니다.
아래 주어진 데이터들로부터 중복을 제거하여 실제 접수 인원을 출력해 주세요
예시people = [ ('이호준',01050442903), ('이호상',01051442904), ('이준호',01050342904), ('이호준',01050442903), ('이준',01050412904), ('이호',01050443904), ('이호준',01050442903), ]
people = [
('이호준','01050442903'),
('이호상','01051442904'),
('이준호','01050342904'),
('이호준','01050442903'),
('이준','01050412904'),
('이호','01050443904'),
('이호준','01050442903'),
]
setList = set(people)
print(len(setList))
문제 : 대소문자 바꿔서 출력하기
문자열이 주어지면 대문자와 소문자를 바꿔서 출력하는 프로그램 작성
입력AAABBBcccddd
출력
aaabbbCCCDDD
str1 = 'AAABBBcccddd'
str2 = ''
for i in str1 :
if i.isupper() :
str2+= i.lower()
else :
str2+= i.upper()
print(str2)
문제 : 최댓값 구하기
순서가 없는 10개의 숫자가 공백으로 구분되어 주어진다. 주어진 숫자들 중 최댓값을 반환하라
입력10 9 8 7 6 5 4 3 2 1
출력
10
a = list(map(int, input().split()))
print(max(a))