안녕하세요. 듀공이에요
드디어 알고리즘 풀이를 시작합니다.
저는 실제로 파이썬을 다뤄본 적이 없어서 기초부터 시작하려고 합니다.
그래서 sloved.ac에 class 순서대로 풀어보려고 해요.
문제)1000 A+B
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
# 1차오답
#a = input()
#b = input()
#print(int(a) + int(b))
num1, num2 = input().split()
print(int(num1)+int(num2))
와 이거 진짜 쉬운 문제인데, 시작부터 오답 나왔습니다.
문제에 보면, 입력에 첫째 줄에 A와 B가 주어진다고 나와있는데.. 그걸 모르고 나눠서 받아서 틀렸어요
문제)1001 A-B
두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.
num1, num2 = input().split()
print(int(num1)-int(num2))
위에 풀어놓고 이거 틀리면 NOT HUMAN🥶
문제)1008 A/B
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.
num1, num2 = input().split()
print(int(num1)/int(num2))
문제)1152 단어의 개수
영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
str = input().split()
print(len(str))
생각보다 쉬웠습니다. 파이썬 함수 좋더라고요.
문제)1157 단어공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
import collections
str = sorted(input().upper())
cnt = collections.Counter(str).most_common()
if len(str) == 1:
result = cnt[0][0]
elif cnt[0][1] == cnt[1][1]:
result = "?"
else:
result = cnt[0][0]
print(result)
위 문제는 푸는데 좀 시간이 걸렸는데,
원래는 배열을 하나 만들고 알파벳과 출몰 횟수를 때려 넣고 정렬한 다음에 맨 앞에꺼를 뽑아내려고 했었는데.....
Collection 모듈을 찾아서 쉽게 해결했습니다. 하하
Collection모듈에서 Counter클래스를 사용했는데요.
most_common()을 사용하면 목록에 있는 키와 개수를 반환시켜 줍니다.
예시는 아래 코드 블록을 참고하시면 돼요.
upper() 함수는 대문자 변환 함수입니다. (그럼 당연히 소문자는 lower()이겠죠?)
import collections
#input = Mississipi
str = sorted(input().upper())
#print(str) : ['I', 'I', 'I', 'I', 'M', 'P', 'S', 'S', 'S', 'S']
cnt = collections.Counter(str).most_common()
#print(cnt) : [('I', 4), ('S', 4), ('M', 1), ('P', 1)]
파이썬 공식문서는 여기 있습니다.
https://docs.python.org/3/library/collections.html#collections.Counter
collections — Container datatypes — Python 3.9.1 documentation
collections — Container datatypes Source code: Lib/collections/__init__.py This module implements specialized container datatypes providing alternatives to Python’s general purpose built-in containers, dict, list, set, and tuple. namedtuple() factory f
docs.python.org
오늘은 이렇게 5개를 풀어봤습니다.
그럼 안녕😎
'Python (현재중단핳핳) > 백준 알고리즘 풀기' 카테고리의 다른 글
백준알고리즘풀기 #4) Class1 - 2457, 2557, 2562-최대값, 2577-숫자의개수 (0) | 2021.03.01 |
---|---|
백준알고리즘풀기 #3) Class1 - 1330, 1546-평균, 2438, 2439-별찍기 (0) | 2021.02.15 |
백준알고리즘풀기 #1) 알고리즘 코딩 연습 사이트 - Solved.ac 붙여보기 (0) | 2021.02.02 |