1 분 소요

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. 미리 처리한 케이스와 처리할 케이스 정리하기

  1. 예제 케이스
  2. 조건 A처리
  3. 조건 B처리
  4. 조건 AB처리

위 예시처럼 케이스를 미리 정리해두면 속도가 빨라진다!

6. 예제, 최소, 최대, 예외, 랜덤 케이스 만들기

특히, 주어진 범위의 최소값을 테스트해보자.
예를들어 주어진 범위가 0 <= N <= 100 이라면 N=0일 때를 테스트하여 index 에러(=런타임 에러) 등이 발생하지는 않는지 체크한다.



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기