728x90
반응형

그냥 A + B를 출력하면 된다.

print(int(input())+int(input()))

728x90
반응형
728x90
반응형

Hello World!를 출력해주자

print("Hello World!")

 

728x90
반응형
728x90
반응형

별 찍기 치고는 어려운 문제다.

import math
    
s = ["  *   ", " * *  ", "***** "]

def Star(shift):
    c = len(s)
    for i in range(c):
        s.append(s[i] + s[i])
        s[i] = ("   " * shift + s[i] + "   " * shift)
        
n = int(input())
k = int(math.log(int(n/3), 2))
for i in range(k):
    Star(int(pow(2, i)))

for i in range(n):
    print(s[i])

728x90
반응형
728x90
반응형

단순 구현 문제이다.

n = int(input())
for i in range(1, n):
    print('*'*i + ' '*2*(n-i) + '*'*i)
for i in range(n, 0, -1):
    print('*'*i + ' '*2*(n-i) + '*'*i)
728x90
반응형
728x90
반응형

단순 구현 문제이다.

n = int(input())
for i in range(1, n):
    print(' '*(n-i) + '*'*(2*i-1))
for i in range(n, 0, -1):
    print(' '*(n-i) + '*'*(2*i-1))
728x90
반응형
728x90
반응형

n = int(input())
for i in range(n, 0, -1):
    print(' '*(n-i) + '*'*(2*i-1))

728x90
반응형
728x90
반응형

n = int(input())
for i in range(1, n+1):
    print(' '*(n-i) + '*'*(2*i-1))

728x90
반응형
728x90
반응형

n = int(input())
for i in range(n):
    print(' '*i + '*'*(n-i))

728x90
반응형
728x90
반응형

n = int(input())
for i in range(n, 0, -1):
    print('*'*i)

728x90
반응형
728x90
반응형

파이썬은 str도 곱할 수 있다.

n = int(input())
for i in range(1, n+1):
    print(" " * (n-i) + "*" * i)

728x90
반응형
728x90
반응형

반복문을 처음 공부할 때 나오는 별 찍기 문제이다.

다른 언어의 경우에는 별 찍기 문제의 난이도가 올라가면 많이 귀찮아질 수도 있는데

파이썬은 비교적 엄청 간단하게 구현할 수 있다.

for i in range (1, int(input())+1):
    print ("*"*i)

728x90
반응형
728x90
반응형

조합의 개수를 구하는 문제이다.

nCm에서 m*2가 n보다 큰 경우에는 nCn-m으로 바꿔줘서 계산을 줄여줘야 한다.

n, m = map(int, input().split())

if m*2 > n:
    m = n-m
a = 1
for i in range(m):
    a *= max(1, (n-i))
b = 1
for i in range(1, m+1):
    b *= i
print(a//b)

728x90
반응형
728x90
반응형

아래 같은 방식으로 노가다로 풀 수도 있지만 수학으로 쉽게 풀 수 있는 문제다.

a, b = map(int, input().split())
a, b = min(a, b), max(a, b)

def f(n):
    return (n*(n+1))//2

if a == b:
    print(a)
elif a <= 0 and b >= 0:
    print(f(b) - f(-a))
elif b <= 0:
    print(-(f(-a) - f(-b-1)))
else:
    print(f(b) - f(a-1))

수학이 참 좋은게 코드가 저렇게 짧아진다.

수학으로 쉽게 풀 수 있다!

a, b = map(int, input().split())
a, b = min(a, b), max(a, b)
n = b - a
ans = ((n+1)*(n+2*a)) // 2

print(ans)

728x90
반응형
728x90
반응형

간단한 수학 문제이다.

처음에는 1 다음에는 6 그다음에는 12, 18, 24... 마다 층이 늘어난다는 점을 파악하면 쉽게 풀 수 있다.

EX) 13

13 - 1 = 12 -> 12 - 6 = 6 -> 6 - 12 = -6 -> 반복문 끝 -> 3 출력

n = int(input())
i = 1
while(n>1):
    n -= 6*i
    i += 1
print(i)

728x90
반응형
728x90
반응형

sum(map(int, list(str(i))))을 사용해 각 숫자들의 합을 구했다.

이 문제는 반복문에 따라 성능이 엄청 달라진다. 

1 ~ N 반복문 -> 1672ms

N//2 ~ N 반복문 -> 868ms

N - 9*len(str(N)[1:]) ~ N 반복문 -> 60ms

거의 27.8배 정도 성능이 향상되었다.

N = int(input())
ans = 0

for i in range(N-9*len(str(N)[1:]), N):
    s = i + sum(map(int, list(str(i))))
    if s == N:
        ans = i
        break

print(ans)

728x90
반응형

+ Recent posts