본문 바로가기
👩‍💻 Programming/Python

코딩테스트 입문자를 위한 파이썬(Python) 기초 문법

by codingBear 2022. 12. 1.
728x90
반응형

들어가며

 코딩테스트 초보자에게 가장 큰 난관이라고 한다면 바로 '기초 문법'일 것이다. 코딩테스트에 입문한 지 얼마 안 됐거나 다른 언어로 코딩테스트를 공부했던 사람이라면 기초 문법은 고사하고 입력값 받는 것부터 막막한 경우가 많다.

 이번 글에서는 파이썬의 기초 문법 및 입력값을 받는 방법 등을 정리하여 위와 같은 고민을 갖고 있는 사람에게 도움을 주고자 한다. 본 글의 내용은 자주 쓰이는 기초적인 내용만 다루었으니 혹시 없는 내용이 있다면 그때그때마다 검색해서 학습한 뒤 잘 각자 정리해두도록 하자.


입력값

입력값 배열로 받기
listInt = list(map(int, input().split()))  # [1, 2, 3, 4 ,5]


여러 숫자 한꺼번에 받기

num1, num2, num3 = map(int, input().split())  # num1 = 1, num2 = 2, num3 = 3


처리 속도 빠른 입력

import sys

fasterInput = sys.stdin.readline().rstrip()

리스트

리스트 관련 기본 문법

listA = [1, 3, 2]

append() - 리스트 맨 끝에 요소 추가

listA.append(4)
print("append()", listA) # append() [1, 3, 2, 4]


sort() - 오름차순, 내림차순 정렬 가능

listA.sort()
print("sort()", listA) # [1, 2, 3, 4]

listA.sort(reverse=True)
print("sort(reverse=True)", listA) # [4, 3, 2, 1]


insert(index, element) - 특정 위치에 원소 삽입

listA.insert(0, 100)
print("insert(0, 100)", listA) # [100, 4, 3, 2, 1]

listA.insert(-1, 100)
print("insert(-1, 100)", listA) # [100, 4, 3, 2, 100, 1]


count() - 특정 원소 개수 세기

cnt100 = listA.count(100)
print("count(100)", cnt100) # 2


remove() - 특정 원소 제거. 특정 원소가 여러 개 존재할 시 가장 첫 번째 요소만 제거

listA.remove(100)
print("remove(100)", listA) # [4, 3, 2, 100, 1]

 
리스트에서 여러 원소들을 제거하는 방법

listB = [1, 2, 3, 3, 4, 5, 6, 5]

remove_set = {3, 5}
removed35 = [i for i in listB if i not in remove_set]

print("removed35", removed35) # [1, 2, 4, 6]


빈 리스트 선언

a = list()
# OR
a = []


크기가 N이고 모든 값이 0인 1차원 리스트 만들기

n = 10
a = [0] * n # [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

 

리스트의 인덱싱과 슬라이싱

아래 예시들에서 사용될 리스트는 list = [1, 2, 3, 4, 5, 6, 7, 8, 9] 라고 하자.

<인덱싱>

뒤에서 n 번째 원소 출력

# list[n]

front = list[0]
print(front) # 1

back = list[-1]
print(back) # 9

 

n 번째 원소 변경

# list[n] = 변경할 값

list[3] = 7
print(list) # [1, 2, 3, 7, 5, 6, 7, 8, 9]
<슬라이싱>

n 번째부터 m 번째 원소 구하기
# list[n : m]

slicedList = list[1 : 4] # 1번 인덱스부터 4 - 1번 인덱스에 해당하는 값들이 출력됨
print(slicedList) # [2, 3, 4]

 

리스트 컴프리헨션

조건문과 반복문을 한 줄로 작성하여 간편하게 리스트를 초기화할 수 있다.

0부터 19까지 수 중에서 홀수만 포함하는 리스트
list = [i for i in range(20) if i % 2 == 1]
print(list) # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]


1부터 9까지 수의 제곱 값을 포함하는 리스트

list = [i * i for i in range(1, 10)]
print(list) # [1, 4, 9, 16, 25, 36, 49, 64, 81]


n * m 크기의 2차원 리스트

n = 3
m = 4
list = [[0] * m for _ in range(n)]
print(list) # [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

문자열

문자열과 변수 더하기
varInStr = 10

print("정답은 " + str(varInStr) + "입니다.")  # 정답은 10입니다.
print("정답은", str(varInStr), "입니다.")  # 정답은 10 입니다.
print(f"정답은 {varInStr}입니다.")  # 정답은 10입니다.


문자열 여러 번 더하기

multiStr = "multipleStr!"
print("multiStr * 3", multiStr * 3) # multipleStr!multipleStr!multipleStr!

사전 자료형

기본 선언법
dict = dict()
dict["사과"] = "Apple"
dict["바나나"] = "Banana"
dict["코코넛"] = "Coconut"


키 데이터만 담은 리스트

keys = dict.keys()
print("keys", keys) # dict_keys(['사과', '바나나', '코코넛'])


값 데이터만 담은 리스트

values = dict.values()
print("values", values) # dict_values(['Apple', 'Banana', 'Coconut'])


리스트 내 값들을 하니씩 출력

for key in keys:
    print("key", key)
    print("val", dict[key])
    
    # key 사과
    # val Apple
    # key 바나나
    # val Banana
    # key 코코넛
    # val Coconut

집합 자료형

집합 자료형을 활용하여 리스트 내 중복값 제거하기
setList = [1, 1, 2, 3, 4, 4, 5]

setted = set(setList)
print("setted", setted) # {1, 2, 3, 4, 5}

setttedList = list(set(setList))
print("setttedList", setttedList) # [1, 2, 3, 4, 5]


집합 자료형의 연산

set1 = set([1, 2, 3, 4, 5])
set2 = set([3, 4, 5, 6, 7])

# 합집합
print("set 합집합", set1 | set2) # {1, 2, 3, 4, 5, 6, 7}
# 교집합
print("set 교집합", set1 & set2) # {3, 4, 5}
# 차집합
print("set 차집합", set1 - set2) # {1, 2}


원소 추가 및 제거

# 새로운 원소 하나 추가
set2.add(8)
print("set.add(8)", set2) # {3, 4, 5, 6, 7, 8}

# 새로운 원소 여러 개 추가
set2.update([9, 0])
print("set.update([9, 0])", set2) # {0, 3, 4, 5, 6, 7, 8, 9}

# 특정 원소 제거
set2.remove(3)
print("set.remove(3)", set2) # {0, 4, 5, 6, 7, 8, 9}
728x90
반응형

댓글