코딩 테스트 준비 기록 - Day 1

김영빈·2022년 1월 10일

코딩 테스트

목록 보기
1/5

코딩 테스트 준비

22년을 맞아 연구실과 논문도 슬슬 마무리되어 코딩 테스트 준비를 시작한다. 알고리즘은 단순히 알고리즘 스터디나 대회만 간간히 참여하다가 본격적으로 취업 준비 겸 알고리즘 공부를 해본다.
교재로는 나동빈님의 '이것이 코딩테스트다'를 사용하며, 기존에 사용하던 c++을 두고 고민하다 python을 사용하여 코딩 테스트를 준비하기로 했다. 아무래도 c++을 사용한지 좀 되기도 했고 연구실에서 python을 주로 사용하다보니 손에 익은 이유가 컸다. 새해인 만큼 꾸준히 간단하게라도 기록을 해볼 생각이다.

Python 기초

python을 원래 사용하고 있어서 완전 기초적인 내용은 다루지 않지만 필요하다고 생각하는 부분들을 간단히 정리한다.

실수 표현하기

  • 소수 n째 자리까지 표현하기
	num = 12.3456
	print(round(num,2))                # 12.35
	print(format(num,".2f"))           # 12.35

리스트 자료형

데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형.

  • 리스트 초기화
    [0] * n 으로 n크기의 0으로 채워진 배열 생성 가능

  • List Comprehension

    리스트를 초기화하는 방법 중 하나

    1. 0 ~ 9까지 갖는 리스트로 초기화하는 방법
    array = [i for i in range(10)].                       #[0,1,2,3,4,5,6,7,8,9]
    
    2. 조건문을 포함하는 식
    array = [i for i in range(20) if i % 2 == 1]          #[1,3,5,7 ... 17, 19] 
    
    3. 2차원 배열 초기화
    array = [[0] * m for _ in range(n)]    # N X M 0행렬 생성
  • List 메소드 정리
    - append() : 리스트에 원소 1개 삽입, 수행시간 : O(1)
    - sort() : 리스트 오름차순, 내림차순 정렬, 수행시간 : O(NlogN)
    - reverse() : 리스트 원소 순서 뒤집기, 수행시간 : O(N)
    - insert() : 특정 인덱스에 원소 삽입, 수행시간 : O(N)
    - count() : 특정 원소의 개수 카운팅, 수행시간 : O(N)
    - remove() : 특정 원소 1개 제거, 수행시간 : O(N)

튜플 자료형

변하지 않는 값들을 저장하는 자료형

  • 튜플을 사용하면 좋은 경우
    1. 서로 다른 성질의 데이터를 묶어서 관리해야 할 때
    ex) (1, '고양이'), (2, '강아지'), (3, '토끼')
    2. 데이터의 나열을 hashing의 키 값으로 사용해야 할 때
    3. 리스트보다 메모리를 효율적으로 사용해야 할 때
    cf) 튜플은 리스트와 달리 copy가 발생할 때 동일한 객체를 새로 메모리에 할당하지 않는다.

기본 입출력

  • 입출력에 사용하는 함수 정리
    - input() : 한 줄의 문자열을 입력받는 함수
    - map() : 리스트의 모든 원소에 특정한 함수를 적용하는 함수
# 정수를 띄어쓰기 단위로 입력받을 때 한 개의 리스트로 받는 방법
a = list(map(int, input().split())

# 같은 경우에 각각 변수에 할당하는 방법
a,b,c = map(int, input().split())
  • 입력을 빠르게 받는 방법!
import sys
data = sys.stdin.readline().rstrip()
  • 출력 시 정수에 대해 str() 사용하지 않고 출력하는 f-string
abc = 123
print(f"something {abc} good!")  # something 123 good!
profile
초보 개발자

0개의 댓글