[Python] 알고리즘 - 1

2024. 1. 4. 21:27· 프로그래밍/알고리즘
목차
  1. 개인 공부 목적 - 참고만 하시는걸 추천드립니다.
  2. 타입캐스팅 연산자, %연산자 활용
  3. 윤년 체크
  4. 선택문 활용 2 : 반올림
  5. 평균
  6. 근의 공식
  7. 중간값
  8. 정렬
반응형

 

개인 공부 목적 - 참고만 하시는걸 추천드립니다.

타입캐스팅 연산자, %연산자 활용

  • 실수를 입력받아 정수부분 1째 자리수와 소수부분 1째 자 리수를 각각 출력하시오.
    • (실행예)
    • 실수 입력 : 23.14 정수 첫째 자리:3 소수 첫째 자리 : 1
    • (Hint) 23.14 ⇒ 23 (정수로 타입캐스팅) ⇒ 3 (%10) 23.14 ⇒ 231.4 ⇒ 231 ⇒ 1 (%10)
n = float(input("실수 입력 : "))

print("정수 첫째 짜리 : ", int(n)%10)
print("소수 첫째 자리 : ", int(n*10)%10)

Untitled.png

윤년 체크

  • 년도를 입력받아, 날짜수 출력
    • 윤년 ⇒ 366일
    • 평년 ⇒ 365일
    • 힌트) 윤년 조건
        1. 4의 배수이면서, 100의 배수가 아님
        1. 400의 배수
year = int(input("년 입력 : "))

if year%4 == 0 and year%100 != 0 or year%400 == 0:
  print("윤년 ==> 366일")
else:
  print("평년 ==> 365일")

Untitled.pngUntitled.png

선택문 활용 2 : 반올림

  • 실수를 입력받아 소수 첫째자리에서 반올림해서 정수로 반올림 변환해 출력
    • (실행 예)반올림결과 : 2반올림결과 : -2
    • 실수 입력 : -1.5
    • 실수 입력 : 1.5
    • (Hint)
    Untitled.png
def round_func(number):
  num_upper = number * 10
  if number > 0:
    if num_upper % 10 >= 5:
      return int(number) + 1
    else:
      return int(number)
  else:
    if num_upper % 10 <= 5:
      return int(number) - 1
    else:
      return int(number)


fl = float(input("실수 입력 : "))
print(round_func(fl))

Untitled.pngUntitled.pngUntitled.png

평균

  • 산술평균, 기하평균, 조화평균 출력
    • 산술평균 = (a+b) / 2
    • 기하평균 = (a*b)**0.5
    • 조화평균 = 2ab/(a+b)
a, b = map(int, (input("숫자 입력 : ")).split())

print("산술평균 : ", (a+b)/2)
print("기하평균 : ", (a*b)**0.5)
print("조화평균 : ", 2*a*b/(a+b))

Untitled.png

근의 공식

  • 사용자로부터 이차방정식의 계수 a(≠0), b, c를 입력 받아 근을 출력
    • (실행 예)중근 : 1두 실근 : -1, 3근이 없음
    • 이차방정식 계수 입력 : 1 1 1
    • 이차방정식 계수 입력 : 1 -2 -3
    • 이차방정식 계수 입력 : 1 -2 1
    • (힌트) 근의 공식
    Untitled.png
import math

def func(a, b, c):
    # 판별식 계산
    discriminant = b**2 - 4*a*c

    # 판별식이 0보다 크거나 같은 경우에만 해를 계산
    if discriminant > 0:
        root1 = (-b + math.sqrt(discriminant)) / (2*a)
        root2 = (-b - math.sqrt(discriminant)) / (2*a)
        return f"두 실근 : {root1}, {root2}"
    elif discriminant == 0:
        root = -b / (2*a)
        return f"중근 : {root}"
    else:
        return "근이 없음"

a, b, c = map(float, input("이차방정식 계수 입력 : ").split())
print(func(a, b, c))

Untitled.png

중간값

  • 세 정수를 입력받아, 중간값 출력
    • 예) 세 정수 입력 : 3 9 6
    • 중간값 = 6
def func(a, b, c):
    if a > b and a < c or a < b and a > c:
        return a
    elif b > a and b < c or b < a and b > c:
        return b
    else:
        return c

a, b, c = map(int, (input("세 정수 입력 : ")).split())
print(func(a, b, c))

Untitled.png

정렬

  • 세 정수를 입력받아, 크기 순서대로 출력
    • 힌트) 버블 정렬
    • 예 ) 세 정수 입력 : 3 9 6
    • 오름차순 정렬 : 3 6 9
def bubble_sort(numbers):
    for i in range(len(numbers)):
        for j in range(len(numbers) - 1):
            if numbers[j] > numbers[j + 1]: # 현재 요소가 다음 요소보다 크다면
                numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j] # 두 요소의 위치를 바꿈
    return numbers

numbers = list(map(int, input("세 정수 입력 : ").split()))
sorted_numbers = bubble_sort(numbers)
print("정렬된 숫자 : ", sorted_numbers)

Untitled.png

반응형
  1. 개인 공부 목적 - 참고만 하시는걸 추천드립니다.
  2. 타입캐스팅 연산자, %연산자 활용
  3. 윤년 체크
  4. 선택문 활용 2 : 반올림
  5. 평균
  6. 근의 공식
  7. 중간값
  8. 정렬
'프로그래밍/알고리즘' 카테고리의 다른 글
  • [Python] 알고리즘 - 3
  • [Python] 알고리즘 - 4
  • [Python] 알고리즘 - 2
Future0_
Future0_
rm -rf /
Future0_
Luna Developer Blog
Future0_
전체
오늘
어제
  • 분류 전체보기 (112)
    • 프로그래밍 (4)
      • 알고리즘 (4)
    • 보안 (14)
      • Dreamhack (4)
      • Hackthebox (1)
      • Webhacking (9)
    • 프로젝트 (4)
    • 공부 (80)
      • Database (2)
      • Python (11)
      • System (4)
      • Java (13)
      • JSP (13)
      • Spring (11)
      • Kotlin (16)
      • 자료구조 (10)
      • 기계학습 (0)
    • Docker (4)
    • Github (2)
    • Tip (1)
    • 잡담 (2)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 키 해시
  • Database
  • spring
  • jsp
  • 1.9.22
  • native app
  • 자바빈즈
  • ViewModel
  • android studio 삭제
  • Android Studio
  • Computer science
  • shared preference
  • 프로그래밍
  • 알고리즘
  • SpringBoot
  • Kotlin
  • 상속
  • api 통신
  • Java
  • webhacking
  • React
  • 코틀린기본문법
  • 컴퓨터
  • 디버깅키해시
  • cs
  • docker
  • Python
  • dreamhack
  • 자료구조
  • 보안

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
Future0_
[Python] 알고리즘 - 1
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.