[합]-8393번
My answer
print(sum([i for i in range(int(input())+1)]))
Another answer
n=int(input())
print(int(n*(n+1)/2))
--------------------
n=int(input());print(n*-~n//2)
더보기
나는 문제 그대로를 의미해서 sum함수를 이용해서 풀었고 아래는 가우스 함수를 이용하였다 이렇게 1~n까지의 합을 구할 때 가우스 공식보다 빠른건 없는 것 같다. 그냥 시간복잡도가 O(1)이다. 아래 코드에서 (-~n)의 의미는 (n+1)을 의미한다. ~는 2의보수를 취하는 방법으로 1의 ~를 취하면 -2가 된다. 따라서 다시 -를 붙여줘서 n+1로 만드는 것이다. 굳이 n+1로 안쓴 이유는 메모리를 더 절약할 수 있기 때문이다. -백준 bupjae님의 답변
[별 찍기-1]-2438번
My answer
for i in range(int(input())):
print('*'*(i+1))
Another answer
for i in range(int(input())):
print('*'*-~i)
[별 찍기-2]-2439번
My answer
n=int(input())
for i in range(n):
print(' '*(n-1-i)+'*'*(i+1))
[별 찍기-3]-2440번
My answer
for i in range(int(input()),0,-1):
print('*'*i)
[별 찍기-4]-2441번
My answer
n=int(input())
for i in range(n,0,-1):
print(' '*(n-i)+'*'*i)
[별 찍기-5]-2442번
My answer
n=int(input())
for i in range(n):
print(" "*(n-1-i)+"*"*(2*i+1))
더보기
대칭이라고 해서 각줄에 *을찍고 공백도 프린트해줬었는데 그렇게 하면 출력오류 뜬다. 그냥 공백* 만 입력하면된다.
[별 찍기-8]-2445번
My answer
import sys
n=int(sys.stdin.readline())
for i in range(n):
print("*"*(i+1)+" "*(n-1-i)*2+"*"*(i+1))
for i in range(n-1,0,-1):
print("*"*i+" "*(n-i)*2+"*"*i)
Another answer
a = int(input())
for i in range(-a+1,a):
i=abs(i)
print('*'*(a-i)+' '*(2*i)+'*'*(a-i))
더보기
아래 코드는 내가 반복문을 두개 나눠서 쓴걸 절댓값을 이용해서 한번에 풀었다.
[별 찍기-12]-2522번
My answer
import sys
n=int(sys.stdin.readline())
for i in range(n):
print((n-i-1)*" "+"*"*(i+1))
for i in range(n-1):
print((i+1)*" "+(n-i-1)*"*")
Another answer
for i in range(1,2*n):
print(' '*(abs(n-i))+'*'*(n-abs(-i+n)))
더보기
아래 코드역시 절댓값을 이용해서 반복문 하나로 구현하였다.
[별 찍기-9]-2446번
My answer
import sys
n=int(sys.stdin.readline())
for i in range(-n,n+1,1):
if(i!=0 and i!=1):
i=abs(i)
print(" "*(n-i)+(i-1)*"*"+"*"+(i-1)*"*")
Another answer
a=int(input())
for i in range(-a+1,a):
i=abs(i)
print(' '*(a-i-1)+'*'*i*2+'*')
[별 찍기-16]-10991번
My answer
import sys
n=int(sys.stdin.readline())
for i in range(n):
print((n-1-i)*" "+"* "*(i+1))
[별 찍기-17]-10992번
My answer
import sys
n=int(sys.stdin.readline())
for i in range(n):
if(i!=n-1 and i!=0):
print((n-1-i)*" "+"*"+(2*i-1)*" "+"*")
else:
print(" "*(n-1-i)+(2*i+1)*"*")
728x90
반응형
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
[Python/백준] #10814 - [나이순 정렬] (0) | 2021.11.28 |
---|---|
[Python/백준] #11650 - [좌표 정렬하기] (0) | 2021.11.28 |
[Python/백준] 수 정렬하기 (0) | 2021.11.27 |
[Python/백준] 기초문제들 3 (0) | 2021.11.26 |
[Python/백준] #2875 - [대회 or 인턴] (0) | 2021.11.22 |