TIL # 29 : [Algorithm] 백준 / 기초 / 별찍기

셀레스틴 허·2021년 1월 2일
0

ALGORITHM

목록 보기
2/18
post-thumbnail

새해 알고리즘 스터디(1.1~7)

1일차

백준 문제 :
2557, 10718, 10171, 10172, 1000, 1001, 10998, 1008, 10869, 10430, 2588, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 1463


✨ 별 찍기

A) 2438번

1차 시도(실패):

r= int(input())

for i in range(r):
    print(i * "*")

이 코드로 출력하면 윗 사진처럼 1-4까지만 출력된다. 그 이유는 바로 r[0]0이기 때문이다😰

2차 시도(성공):

r = int(input())

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

문제풀이 체크리스트

◻️ 시간 제한 지났음에도 문제 터치 못함
◻️ 시간 제한 후 코드 완성
◻️ 코드 미완성
◼️ 코드 완성 - 같은 모양의 별찍기 실패
◻️ 코드 완성 - 정답


B) 2439번

1차 시도(성공):

r= int(input())

for i in range(1, r+1):
    print(" "*(r-i)+"*"*i)

문제풀이 체크리스트

◻️ 시간 제한 지났음에도 문제 터치 못함
◻️ 시간 제한 후 코드 완성
◻️ 코드 미완성
◻️ 코드 완성 - 같은 모양의 별찍기 실패
◼️ 코드 완성 - 정답


C) 2440번

소스 코드:

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

range의 step을 이용해서 더 파이써닉하게 풀었다.

출처 - j-remind

문제풀이 체크리스트

◼️ 시간 제한 지났음에도 문제 터치 못함
◻️ 시간 제한 후 코드 완성
◻️ 코드 미완성
◻️ 코드 완성 - 에러
◻️ 코드 완성 - 정답


D) 2441번

1차 시도(실페):

r= int(input())

for i in range(r, 0, -1):
  print(" "*(r-i), "*"*i)

(위에 있는) 흥미로운 코드를 바탕으로 짜봤다. 이번에는 +가 아닌 ,빈칸을 나눴다. 그러자 출력 형식이 잘못되었습니다가 떴다. 다시 +으로 바꾸면 정상 출력된다.

2차 시도(성공):

r= int(input())

for i in range(r, 0, -1):
  print(" "*(r-i) + "*"*i)

문제풀이 체크리스트

◻️ 시간 제한 지났음에도 문제 터치 못함
◻️ 시간 제한 후 코드 완성
◻️ 코드 미완성
◻️ 코드 완성 - 에러
◼️ 코드 완성 - 정답


D) 2442번

1차 시도(성공):

r= int(input())

for i in range(1, r+1):
  print((" "*(r-i)) + ("*"*(2*i-1)))

문제풀이 체크리스트

◻️ 시간 제한 지났음에도 문제 터치 못함
◻️ 시간 제한 후 코드 완성
◻️ 코드 미완성
◻️ 코드 완성 - 에러
◼️ 코드 완성 - 정답


E) 2443번

1차 시도(성공):

r= int(input())

for i in range(r, 0, -1):
  print((" "*(r-i))+("*"*(2*i-1)))

출력형식이 잘못됐다고 뜬다.

문제풀이 체크리스트

◻️ 시간 제한 지났음에도 문제 터치 못함
◻️ 시간 제한 후 코드 완성
◻️ 코드 미완성
◻️ 코드 완성 - 에러
◼️ 코드 완성 - 정답


E) 2444번

1차 시도(성공):

r= int(input())

for i in range(1, r):
  print((" "*(r-i))+("*"*(2*i-1)))
for i in range(r, 0, -1):
  print((" "*(r-i))+("*"*(2*i-1)))

for in 소스 코드:

# 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))

출처 - jinho-study

문제풀이 체크리스트

◻️ 시간 제한 지났음에도 문제 터치 못함
◻️ 시간 제한 후 코드 완성
◻️ 코드 미완성
◻️ 코드 완성 - 에러
◼️ 코드 완성 - 정답


E) 2445번

소스 코드:

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)

출처 - jinho-study

문제풀이 체크리스트

◻️ 시간 제한 지났음에도 문제 터치 못함
◻️ 시간 제한 후 코드 완성
◼️ 코드 미완성
◻️ 코드 완성 - 에러
◻️ 코드 완성 - 정답


Reference
https://www.acmicpc.net/
https://joewithtech.tistory.com/26
https://j-remind.tistory.com/22
https://jinho-study.tistory.com/86

profile
Software Developer / 고통은 필연, 괴로움은 선택

0개의 댓글