TIL - 20.12.11 (백준 문제풀이)

예니·2020년 12월 14일
0

TIL

목록 보기
17/25

1. 별찍기

print 함수 사용 시, 자동으로 줄바꿈이 되는데 end='' 붙여주면 줄바꿈 안되고 연달아 출력된다.
for문 돌면서 연달아 별을 출력해야하는 별찍기 문제의 경우
print(‘*’, end=’’) 해주면 반복 횟수만큼 연달아 출력할 수 있다.

n = int(input())

for i in range(n):
   for j in range(i+1):
       print('*', end='')
   print('')

i가 0부터 시작하므로, 안쪽 for문의 경우, range(i+1) 해주어야한다.

파이썬은 print(내용 * 횟수) 해주면 내용을 횟수만큼 출력해준다.
이거 쓰면 엄청 간단하게 코드 작성 가능


2. X보다 작은 수

a = [int(x) for x in input().split()]  
a = [1, 2, 3, 4 ,5]

띄어쓰기로 구분된 숫자 입력 받아 리스트에 저장할 때 위와 같이 쓴다.
input 보다 빠른 sys.stdin.readline() 사용은 아래와 같다.

import sys  
a = list(map(int, sys.stdin.readline().split()))
a = [1, 2, 3, 4, 5]

3. 최댓값

리스트 인덱스 찾을 때

a = [1,2,3]
a.index(3)
2

그럼 최댓값 인덱스 찾을 때는
a.index(max(a))


4. 평균은 넘겠지

round 함수 사용 시, 소수점 끝자리가 0이면 생략되는 문제가 있다.
소수점 세자리까지 출력을 해야할 때, 40.000% 가 답이면 40.0% 를 출력하여 오답처리되었다.
이런 문제를 해결하기 위해 format() 함수를 사용한다.
format(item, 정밀도f) 형태로 사용한다.
format(3.141592, “.2f”) -> 소수점 두 자리까지 출력 가능


5. 아스키 코드

문자열 -> 아스키 코드 : ord()
아스키 코드 -> 문자열 : chr()


6. 달팽이는 올라가고 싶다

쉬운 문제라는데 나는 완전 어려웠다..ㅠㅠ
등차수열 원리 이용해서 푸는거라고 … . .. . .. . .. . …… … .
나는 계속 하루를 낮,밤 순서로 생각했지 밤,낮 순서로 묶어야하는지 몰랐다.
하루를 묶어서 처리하되, 마지막날 올라가는 것 따로 처리해주기!


7. 골든바흐의 추측

시간 줄이려고 3번 풀었다.
4000ms 대에서 2000ms, 1000ms까지 줄였다. 시간을 ¼ 나 줄이다니 뿌듯..
소수 몇개정도 리스트에 미리 담아두고, 소수 판별 함수 사용하면서 소수를 리스트에 추가해주면 시간 많이 줄일 수 있다.

8. 하노이 탑

파이썬 전역변수 선언 주의!
그냥 선언하면 안되고

global a
a = 0

이런 식으로 global 붙여서 선언하고, 따로 값 할당해줘야 한다.
함수 안에서 사용할 때도 global 붙여서 선언, 할당

list에 넣을 때도 f포맷팅 가능

하노이탑 원반 n개면 횟수는 2^n -1

0개의 댓글

관련 채용 정보