백준/백준 파이썬

백준 파이썬 Today I Learn 2023.06.15

군청레프 2023. 6. 24. 18:31
728x90

6/ 15 파이썬 공부
1. 백준 28235 코드마스터 2023
송도고등학교에서 주최하는 첫 중고등학생 대상 알고리즘 대회, "코드마스터 2023"이 열렸다!
이 대회가 중고등학생들에게 인기 있는 알고리즘 대회이자 오프라인 이벤트로서 자리매김할 수 있도록 운영진은 각고의 준비를 했다.
대회를 시작하며 다음 네 가지 구호에 맞춰 알맞은 응원을 하는 프로그램을 작성하여라.

- 구호 SONGDO에 대해 HIGHSCHOOL로 응원.
- 구호 CODE에 대해 MASTER로 응원.
- 구호 2023에 대해 0611로 응원.
- 구호 ALGORITHM에 대해 CONTEST로 응원.

첫 번째 줄에 네 가지 구호 중 한 가지에 해당하는 문자열이 주어진다.
주어진 구호에 맞춰 알맞은 응원에 해당하는 문자열을 출력한다.

>>>코드

s = input()
if s == 'SONGDO':
    print('HIGHSCHOOL')
elif s == 'CODE':
    print('MASTER')
elif s == '2023':
    print('0611')
elif s == 'ALGORITHM':
    print('CONTEST')



2. 백준 2145 숫자 놀이
초등학생인 도겸이는 숫자를 좋아한다. 어느 날 도겸이는 숫자 책을 보다가 간단한 놀이를 하나 생각해냈다. 숫자 놀이의 규칙은 다음과 같다.

(1) 주어진 숫자의 각 자릿수를 더한다.
(2) 결과가 한 자릿수가 될 때 까지 규칙1을 반복한다.

예를들어, 숫자 673에 규칙을 적용해보면 결과는 7이 된다 ; 6 + 7 + 3 = 16, 1 + 6 = 7 
도겸이는 당신과 함께 숫자놀이를 하고싶어한다. 도겸이가 주는 숫자들을 풀어보자.
각 줄에 숫자 N이 주어진다. N은 100,000보다 작은 양의 정수이다. 
마지막 입력은 0이며, 0에 대한 결과는 출력하지 않는다.
한 줄에 하나씩 한 자릿수 결과를 출력한다.

>>>코드

while True:
    n = input()
    if n == '0':
        break
    while len(n) > 1:
        r = 0
        for i in range(len(n)):
            r += int(n[i])
        n = str(r)
    print(n)



3. 백준 2386 도비의 영어 공부
꿍은 도비의 자유를 위해 영어를 가르치기로 결심했다. 하지만 도비는 바보라 ABC부터 배워야 한다.
그래서 꿍은 영어 문장과 알파벳 하나가 주어지면 그 알파벳이 문장에서 몇 번 나타나는지를 세는 문제들을 내주었다. 하지만 도비는 마법사고 컴공도 마법사다.
여러분은 도비를 위해 문제의 답을 알려주는 프로그램을 만들수 있을것이다!
입력은 몇 개의 줄들로 이루어진다.
각 줄에는 하나의 소문자와 영어 문장이 공백으로 구분되어 주어진다.
각 문장은 길이가 1에서 250이며 입력의 마지막은 #이다.
출력의 각 줄은 입력으로 주어진 소문자와 그 소문자 알파벳이 나타난 횟수로 이루어진다. 
이때 문장에서 해당 알파벳이 소문자로 나타나던 대문자로 나타나던 모두 세야 한다.

>>>코드

while True:
    l = input()
    if l == '#':
        break
    l = l.lower()
    print(l[0],l.count(l[0])-1)



4. 백준 2399 거리의 합
수직선에 n개의 점이 찍혀 있다. 
각각의 점의 x좌표가 주어졌을 때, n2개의 모든 쌍에 대해서 거리를 더한 값을 구하는 프로그램을 작성하시오.
즉, 모든 i, j에 대해서 |x[i] - x[j]|의 합을 구하는 것이다.
첫째 줄에 n(1 ≤ n ≤ 10,000)이 주어진다. 다음 줄에는 x[1], x[2], x[3], …, x[n]이 주어진다. 
각각은 0 이상 1,000,000,000 이하의 정수이다.
첫째 줄에 답을 출력한다.

>>>코드

n = int(input())
l = list(map(int, input().split()))
r = 0
for i in range(n):
    for j in range(n):
        r += abs(l[i]-l[j])
print(r)


pypy3로 해야지 시간초과가 안걸린다.

728x90