[Python/백준] 기초문제들 4

2021. 11. 27. 18:15·코딩테스트/백준[Python]

[합]-8393번

 

8393번: 합

n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.

www.acmicpc.net

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번

 

2438번: 별 찍기 - 1

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

www.acmicpc.net

My answer

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

Another answer

for i in range(int(input())):
    print('*'*-~i)

 

[별 찍기-2]-2439번

 

2439번: 별 찍기 - 2

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

www.acmicpc.net

My answer

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

 

[별 찍기-3]-2440번

 

2440번: 별 찍기 - 3

첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제

www.acmicpc.net

My answer

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

[별 찍기-4]-2441번

 

2441번: 별 찍기 - 4

첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

www.acmicpc.net

My answer

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

[별 찍기-5]-2442번

 

2442번: 별 찍기 - 5

첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다.

www.acmicpc.net

My answer

n=int(input())
for i in range(n):
    print(" "*(n-1-i)+"*"*(2*i+1))
더보기

대칭이라고 해서 각줄에 *을찍고 공백도 프린트해줬었는데 그렇게 하면 출력오류 뜬다. 그냥 공백* 만 입력하면된다.

[별 찍기-8]-2445번

 

2445번: 별 찍기 - 8

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

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번

 

2522번: 별 찍기 - 12

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

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번

 

2446번: 별 찍기 - 9

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

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번

 

10991번: 별 찍기 - 16

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

www.acmicpc.net

My answer

import sys
n=int(sys.stdin.readline())
for i in range(n):
    print((n-1-i)*" "+"* "*(i+1))

[별 찍기-17]-10992번

 

10992번: 별 찍기 - 17

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

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
'코딩테스트/백준[Python]' 카테고리의 다른 글
  • [Python/백준] #10814 - [나이순 정렬]
  • [Python/백준] #11650 - [좌표 정렬하기]
  • [Python/백준] 수 정렬하기
  • [Python/백준] 기초문제들 3
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (471)
      • 알쓸신잡 (79)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    백준
    BFS
    파이썬
    dp
    그리디
    나동빈
    이것이취업을위한코딩테스트다
    DFS
    이분탐색
    이코테
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3

HOME

HOME

상단으로

티스토리툴바