28일차 문제

양진혁·2021년 11월 28일
0

문제풀이

가장 많은 나온 단어를 출력하는 것이다. 만약 가장 많은 단어수가 동일하다면 알파벳 순서대로 리턴하면 된다.

예제 입력 1
english is a west germanic
language originating in england
and is the first language for
most people in the united
kingdom the united states
canada australia new zealand
ireland and the anglophone
caribbean it is used
extensively as a second
language and as an official
language throughout the world
especially in common wealth
countries and in many
international organizations

예제 출력 1
a

import sys
a = sys.stdin.read()
alli = [0]*26
for c in a:
    if c.islower():
        alli[ord(c)-97] += 1
for i in range(26):
    if alli[i] == max(alli):
        print(chr(97+i), end='')
stdin.read()를 통해서 여러줄로 입력된 입력을 받아준다. 그다음 alli를 만든 후 알파벳 숫자만큼의 0 리스트를 만들어준다.
반복문을 통해서 아스키코드를 통해서 알파벳이 나올때마다 순서대로 0 리스트에서 1씩 추가된다.
그 다음 반복문을 통해서 alli[i]의 개수를 max()를 통해서 가장 많이 나온 것을 출력한다.

두번째는
양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.

예제 입력 1
2
4 2

예제 출력 1
8

a = int(input())
b = list(map(int, input().split()))
b.sort()
print(b[0]*b[-1])

약수 b를 받은 후 sort를 통해서 정렬을 한다. 약수는 맨 처음과 끝을 곱하면 원래의 수가 나오기 때문에 가장 작은수와 큰 수를 곱해줬다.

0개의 댓글