[Tip] 코딩테스트 팁
1. 비트 연산자 활용하기
이 글을 참고하자
2. 상태를 나타내는 자료 활용하기
N = 9
isPrime = True # ✅
for i in range(2, N):
if N % i == 0:
print("Not Prime")
isPrime = False
break
if isPrime:
print("Prime")
3. 나눠서 진행하기
def checkPrime(N): # ✅
for i in range(2, N):
if N % i == 0:
return False
return True
for N in range(10, 20):
if checkPrime(N):
print("{} is Prime".format(N))
# 0~N까지 0~M까지 배열 중 a,b가 범위 안에 있는가
def isRange(a,b,N,M): # ✅
return 0 <= a < N and 0 <= b < M
4. 여러 자료구조와 메서드, 함수 활용하기
ex. Palin 확인하기 (앞으로 읽으나 뒤로 읽으나 같은 문자열)
기존 방법
S = "hellh"
# S = "hllh"
# S = "hlolh"
for i in range(len(S)//2):
if S[i] != S[len(S)-i-1]:
print("Not Palin")
break
파이썬스러운 방법
S = "hellh"
# 기존 문자열과 기존 문자열을 복사한 것을 역으로 읽었을 때를 비교
# arr[A:B:C]의 의미는, index A 부터 index B 까지 C의 간격으로 배열을 만들어라
if S == S[::-1]: # ✅
print("isPalin")
else:
print("Not Palin")
# 배열에 있는 모든 값이 다른지 체크
def isUnique(lst):
return len(lst) == len(set(lst)) # ✅
5. 미리 처리한 케이스와 처리할 케이스 정리하기
- 예제 케이스
- 조건 A처리
- 조건 B처리
- 조건 AB처리
위 예시처럼 케이스를 미리 정리해두면 속도가 빨라진다!
6. 예제, 최소, 최대, 예외, 랜덤 케이스 만들기
특히, 주어진 범위의 최소값을 테스트해보자.
예를들어 주어진 범위가 0 <= N <= 100
이라면 N=0일 때를 테스트하여 index 에러(=런타임 에러) 등이 발생하지는 않는지 체크한다.
💛 개인 공부 기록용 블로그입니다. 👻