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(내용 * 횟수)
해주면 내용을 횟수만큼 출력해준다.
이거 쓰면 엄청 간단하게 코드 작성 가능
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]
리스트 인덱스 찾을 때
a = [1,2,3]
a.index(3)
2
그럼 최댓값 인덱스 찾을 때는
a.index(max(a))
round 함수 사용 시, 소수점 끝자리가 0이면 생략되는 문제가 있다.
소수점 세자리까지 출력을 해야할 때, 40.000% 가 답이면 40.0% 를 출력하여 오답처리되었다.
이런 문제를 해결하기 위해 format()
함수를 사용한다.
format(item, 정밀도f)
형태로 사용한다.
format(3.141592, “.2f”)
-> 소수점 두 자리까지 출력 가능
문자열 -> 아스키 코드 : ord()
아스키 코드 -> 문자열 : chr()
쉬운 문제라는데 나는 완전 어려웠다..ㅠㅠ
등차수열 원리 이용해서 푸는거라고 … . .. . .. . .. . …… … .
나는 계속 하루를 낮,밤 순서로 생각했지 밤,낮 순서로 묶어야하는지 몰랐다.
하루를 묶어서 처리하되, 마지막날 올라가는 것 따로 처리해주기!
시간 줄이려고 3번 풀었다.
4000ms 대에서 2000ms, 1000ms까지 줄였다. 시간을 ¼ 나 줄이다니 뿌듯..
소수 몇개정도 리스트에 미리 담아두고, 소수 판별 함수 사용하면서 소수를 리스트에 추가해주면 시간 많이 줄일 수 있다.
파이썬 전역변수 선언 주의!
그냥 선언하면 안되고
global a
a = 0
이런 식으로 global 붙여서 선언하고, 따로 값 할당해줘야 한다.
함수 안에서 사용할 때도 global 붙여서 선언, 할당
list에 넣을 때도 f포맷팅 가능
하노이탑 원반 n개면 횟수는 2^n -1