string.ljust(len, text): 문자열을 왼쪽으로 밀고 len만큼 오른쪽에 text를 채워넣음
string.rjust(len, text): 문자열을 오른쪽으로 밀고 len만큼 왼쪽에 text를 채워넣음
사실 우리에게 익숙한 함수는 lpad, rpad일텐데 파이썬에는 내장함수로 존재하지 않고 ljust, rjust라는 함수가 존재한다.
num = int(input())
row = "*"
for i in range(0, num):
res = str(row * i).ljust(num, ' ')
rev = str(row * i).rjust(num, ' ')
print(res+rev)
for j in range(num, 0, -1):
res = str(row * j).ljust(num, ' ')
rev = str(row * j).rjust(num, ' ')
print(res+rev)
2-2. lpad, rpad
def lpad(i, len, fillchar='0'):
return str(i).rjust(len, fillchar)
def rpad(i, len, fillchar='0'):
return str(i).ljust(len, fillchar)
num = int(input())
row = "*"
for i in range(0, num):
res = rpad(row * i, num, ' ')
rev = lpad(row * i, num, ' ')
print(res+rev)
for j in range(num, 0, -1):
res = rpad(row * j, num, ' ')
rev = lpad(row * j, num, ' ')
print(res+rev)
padding함수는 파이썬에 자체내장되어있지 않아 만들어서 사용한다고 가정하면 위처럼 쓸 수 있다.
2-3. map
map(dataType, value)
map(int, '12345') => 12345
list(map(int, '12345')) => [1,3,5,7,9]
코테 연습하며 가장 많이 사용하게 되는 함수 중 하나였다.
특히나 인풋을 받아 list로 변환하는 등의 모습으로 자주 쓰이게 된다.
2-4. join (list to string)
list = ['h','e','l','l','o']
print(''.join(list)) => 'hello'
print(','.join(list)) => 'h,e,l,l,o'
for문으로 리스트 값을 string으로 붙여쓸 수도 있겠으나 join이 보다 가시적이다.
2-5. 리스트 정렬
list.sort()
list.sort(reverse=True)
파이썬은 참 편하다. 리스트로 받아서 최대 최소 값 구하라는 문제가 나오면 sort 만 하면 되니까 ㅎㅎ
기본적으로 오름차순이며 내림차순은 reverse=True를 해주면 된다.
2-6. 대소문자 변환
a = string.upper()
b = string.lower() # string은 변수명 넣으면됨
string.isupper() # 내부 문자열이 모두 대문자면 True 아니면 False
2-7. zip()
name = ['kim', 'choi']
age = [25, 26]
person = zip(name, age)
print(list(person))
=>[('kim',25),('choi',26)]
두개의 리스트를 묶어서 사용할 때 쓰게 된다고 함.
사실 실질적 효용은 모르겠으나 코테 풀며 사용한 이력이 있어 기록은 해둔다. --> 풀면 풀수록 꽤나 사용하게 됨.
for문에서도 쓸 수 있음!
2-8. 올림 내림
# 실수를 입력하면 올림 하여 정수를 반환하는 함수
math.ceil( )
# 실수를 입력하면 내림하여 정수를 반환하는 함수
math.floor( )
2-9. filter
list(filter(func, word_list))
func는 직접 만든 function을 넣어도 된다.
filter는 반환값이 iterator객체라 데이터타입을 선언하여 받아줘야한다.
1.숫자(정수) 추출
a='123abc'
result=int(filter(str.isdigit, a))
2.문자 추출
a='123abc'
result=list(filter(str.isalpha, a))
2-10. 순열, 조합
import itertools
lst = ['A', 'B', 'C']
itertools.permutations(lst, 2)
#순열 res ['AB', 'AC', 'BA', 'BC', 'CA', 'CB']
itertools.combinations(lst, 2)
#조합 res ['AB', 'AC', 'BC']
순열 : 순서를 생각하고 num개수만큼 추출해서 뽑음
조합 : 순서를 생각하지 않고 num개수만큼 추출해서 뽑음 (AB == BA)
2-11. slice()
arr = ['a','b','c','d','e','f']
0 1 2 3 4 5
-6 -5 -4 -3 -2 -1
#arr[start, end]
arr[1:] => ['b','c','d','e','f']
arr[-4:] => ['c','d','e','f']
arr[:3] => ['a','b','c']
arr[:-5] => ['a']
arr[2:4] => ['c','d']
arr[-5:-2] => ['b','c','d']
#arr[start, end, step]
#step > 0 : 오른쪽으로 step만큼 이동하며 가져옴
#step < 0 : 왼쪽으로 step만큼 이동하며 가져옴
arr[::2] =>['a','c','e']
arr[3:0:-1] =>['d','c','b']
arr[3::-1] =>['d','c','b','a']
arr[::-1] =>['f', 'e', 'd', 'c', 'b', 'a']
2-12. 리스트 함수
.insert(idx) #원하는 인덱스위치에
.append() #제일뒤에
.remove(val) #특정값지우기
.pop() #제일 뒤 팝
.pop(idx) #원하는 인덱스 팝
reversed(list) #list[::-1]과 결과값 동일
list.reverse() #list를 뒤집어버림. 반환값이 별도로 존재하지않음. 이미 취해진 액션
str[a:b] #a번째부터 b번째 직전까지의 요소 (slice참고)
'IT이야기 > CODE PRACTICE' 카테고리의 다른 글
[분할정복] 백준 2447 - 파이썬 (0) | 2024.10.26 |
---|---|
[이분탐색] 백준 10816 - 파이썬 (0) | 2024.10.24 |
[PYTHON] 코테에 사용되는 기본 문법 및 함수 (0) | 2024.10.17 |
정렬 알고리즘 - 파이썬 (선택정렬, 버블정렬, 삽입정렬, 병합정렬, 퀵정렬, 계수정렬) (0) | 2024.10.16 |
[파이썬] 코딩테스트에서 사용되는 함수 기본기 - 탐색, 소수찾기, 소인수분해, k진수 등 (0) | 2024.10.15 |