공부

[파이썬] 코딩테스트 준비 (수정중)

narlo 2022. 11. 17. 01:14

default

제곱근 : n ** (1/2)

정수 판별 : n % 1 == 0 => 정수

int(num, n진법) => n진법 num을 10진법으로 변환

 

range(start, stop, step) - 범위 내 숫자 생성

ex) range(0, 10, 2) : 0, 2, 4, 6, 8

 

format(숫자, 'b'(or 'o' or 'x')) => 10진수를 2진수(8진수, 16진수)로 변환

format().zfill(n) => n자리 숫자로 format

 

string.format() - string에 {}를 이용해 변수가 들어갈 자리를 만들어주고, () 안에 대입할 값을 입력

 

문자열 관련 함수

s.replace("이전 문자열", "대체할 문자열")

문자열 소문자 - s.lower()

문자열 대문자 - s.upper()

문자열 내에서 특정 문자 개수 구하기 - s.count()

문자열이 모두 숫자로 이루어져있는지 확인 - s.isdigit()

s.find(c) - s에서 c 찾기

 

정렬

sorted(list, key=lambda x:(조건))

ex) sorted(strings, key=lambda x:(x[n], x)) => x의 n번째를 기준으로 정렬, 같다면 x를 기준으로 정렬

 

리스트 관련 함수

sum(list) - 리스트의 합

    자릿수의 합 구하기

    sum(list(map(int, str(n))))

list.reverse() - 리스트 순서 뒤집기

리스트에서 특정 요소 찾기 - list.index('찾을 요소')

list를 str로 - "".join(list)

 

딕셔너리

{key:value, key2:value2, ...}

key-value 쌍으로 이루어진 자료구조

    key 리스트 만들기 - dict.keys()

    value 리스트 만들기 - dict.values()

    key, value 쌍 얻기 - dict.items()

 

순열과 조합

import itertools

itertools.combinations(n, 3) => nC3

itertools.permutations(n, 2) => nP2

 

소수판별

에라토스테네스의 체

answer = 0

sosu = [False] * (n+1)
for i in range(2, n+1):
	if sosu[i] == 0:
    	answer += 1			//소수인 경우
        for j in range(i, n+1, i):
        	sosu[j] = True
            
return answer

j 반복문은 i부터 n+1까지 i씩 더해가며 반복한다.

i가 2인경우 2의 배수를, i가 3인 경우 3의 배수를 모두 제거하는 것과 같다.

 

정수형 리스트 join

''.join(map(str, stack))