Python (현재중단핳핳)/백준 알고리즘 풀기

백준알고리즘풀기 #3) Class1 - 1330, 1546-평균, 2438, 2439-별찍기

김듀공 2021. 2. 15. 23:45

 

안녕하세요. 듀공이에요.

오늘도 알고리즘 풀이를 진행합니다.

파이썬 문법공부를 먼저 할걸 그랬나 후회되기도 하지만, 알고리즘을 통해서 배우려고요.

 

문제 1330) 두 수 비교하기
두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.
A,B = map(int,input().split())

if A > B:
    print(">")
elif A < B:
    print("<")
else:
    print("==")

파이썬은 변수 타입에 제약을 안 받는 게 장점이기도 하지만

저는 Java 사용에 익숙하다 보니, 자꾸 타입을 먼저 선언하게 되네요.. 습관처럼..

 

문제 1546) 평균
세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.
예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.
세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.

 

이거는 일단 오답 먼저 보시죠. 

cnt = input()
score = input().split()

#최대값 구하기
max = int(score[1])
for i in score:
    if int(i)>max:
        max=i

# 점수 고치기
result = []
for i in score:
    result.append(int(i)/int(max)*100)

#새로운 평균 구하기
avg = 0
for i in result:
    avg = avg+i

avg = avg/int(cnt)
print(avg)

이렇게 제출했더니, 계속 런타임 에러가 떨어지더라고요. 제가 했을 때 결과는 잘 나오는데?

 

믿을수 없어서 제출 두번 해 봄

그래서 아 대체 뭘까 형 변환을 어떻게 해야 하는 건가 고민하다 보니까

아니, 파이썬에 max 함수가 있더라고요?

그래서 다시 작성했습니다.

cnt = int(input())
score = list(map(int,input().split()))

print(sum(score)/max(score)*100/cnt)

와 세줄만에 끝납니다.

파이썬 정말 좋은 언어더라고요. 내장 함수가 아래와 같습니다.

 

파이썬 내장함수

자세한 내용은 아래 내장 함수 공식 문서에 있습니다.

 

내장 함수 — Python 3.9.1 문서

 

내장 함수 — Python 3.9.1 문서

내장 함수 파이썬 인터프리터에는 항상 사용할 수 있는 많은 함수와 형이 내장되어 있습니다. 여기에서 알파벳 순으로 나열합니다. abs(x) 숫자의 절댓값을 돌려줍니다. 인자는 정수, 실수 또는 __

docs.python.org

문제 2438) 별 찍기 -1
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
cnt = input()
for i in range(1, int(cnt)+1) :
    row = ""
    for j in range(i) :
        row += "*"
    print(row)

이 것도 되게 흔한 문제죠. 거꾸로도 한번 출력해봤습니다.

# 별 거꾸로 출력하기
cnt = input()
for i in range(int(cnt), 0, -1):
    row = ""
    for j in range(i, 0, -1):
        row += "*"
    print(row)

range 함수 쓰니까 간단하더라고요.

# range 함수
range(start, stop, step)

파이썬 공식문서 첨부합니다.

 

내장형 — Python 3.9.1 문서

 

내장형 — Python 3.9.1 문서

다음 섹션에서는 인터프리터에 내장된 표준형에 관해 설명합니다. 기본 내장 유형은 숫자, 시퀀스, 매핑, 클래스, 인스턴스 및 예외입니다. 일부 컬렉션 클래스는 가변입니다. 제자리에서 멤버

docs.python.org

문제 2439) 별 찍기 -2
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
cnt = input()
for i in range(1, int(cnt)+1) :
    row = ""
    for j in range(int(cnt)-i, 0, -1):
        row += " "
    for k in range(i):
        row += "*"
    print(row)

 

이렇게 4문제를 풀어봤습니다.

 

오늘 문제들은 내장 함수에 대해서 많이 배웠네요.

 

그럼 안녕😎

반응형