분수의 덧셈
수학문제
답:
더보기
import math
def solution(numer1, denom1, numer2, denom2):
denom = denom1 * denom2
numer = denom1 * numer2 + denom2 * numer1
gcd = math.gcd(numer, denom)
return [numer//gcd, denom//gcd]
문제 분석 및 해석
두 분수의 numer(분자), denom(분모)가 각각 주어지며, 해당 분수를 기약분수로 표현하기
**기약분수 : 더이상 나누어지지 않는 수로 이루어진 분수, 분자 분모가 모두 소수
>> 풀이생각
분모를 같게 만들어 저장,
분자는 서로의 분모를 곱하여 더하여 저장
이후 두 수의 최대공약수 math.gcd를 구해서 몫을 retrun
리뷰.
gcd를 다시 구현할 생각을 하고 있다가 모듈이 있다는걸 떠올림...
자주 쓰고 익히자.
문자열 내 p와 y의 개수
답:
더보기
def solution(s):
answer = True
check_p = 0
check_y = 0
s = s.lower()
for iter_s in s:
if iter_s == "p":
check_p += 1
elif iter_s == "y":
check_y += 1
return True if check_p == check_y else False
문제 분석 및 해석
대문자와 소문자가 섞여있는 문자열 s
s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return
개수를 비교할 때 대문자와 소문자는 구별하지 않음
입출력
s | answer |
"pPoooyY" | true |
"Pyy" | false |
>> 풀이생각
다른 문자도 주어지므로 각각을 If elif로 확인해야함
If문에서 ‘p’ ‘P’로 둘다 확인해도 되지만
lower를 사용하자
리뷰.
lower upper함수는 sort처럼 본래 문자열을 수정하지 않는다!
꼭 s = s.lower()로 사용하자
'알고리즘 풀이' 카테고리의 다른 글
[알고리즘] 백준 | 개수 찾기, X보다 작은 수, 최소,최대, 최댓값 (0) | 2023.09.05 |
---|---|
[알고리즘] 백준 | 공 넣기 (0) | 2023.09.04 |
[알고리즘] 프로그래머스 | 구명보트 (0) | 2023.09.01 |
[알고리즘] 프로그래머스 | 짝지어 제거하기 (페어) (0) | 2023.08.31 |
[알고리즘] Python 원시문자열 (0) | 2023.08.30 |