프로그래머스 Lv 0

그녕·2024년 3월 19일
0

알고리즘 문제 풀이

목록 보기
29/35

  • 문자열이 숫자로만 이루어져 있는지 확인하는 함수
    모든 문자가 숫자로만 이루어져 있으면 True반환
str.isdigit()
  • object가 정수인지 판단하는 함수
if int(a) == a:
	pass
if isintace(a, int): #True로 값이 나오면 조건문 실행
	pass
x = 10.0
float(x).is_integer() #True반환
if x % 1 == 0:
  • 루트 값 구하고 싶을 때
x**(1/2)
  • 소문자나 대문자로 다 바꾸고 싶을 때
string.upper()#대문자로
string = string.lower()#소문자로
밑에 형식처럼 해야지만 적용이 된다. 
  • 리스트를 문자열로 바꾸고 싶을 때
a = ['a', 'b', 'c', 'd', '1', '2', '3']
result1 = "".join(a) #abcd123출력
print(result1)

리스트에 있는 요소들을 합쳐서 문자열로 반환하는 함수
'구분자'.join(리스트) #_이러한 구분자를 넣어서 반환함 a_b_c_d_1_2_3

  • 공백으로 구분 할 때
    split 함수 사용
my_string.split(" ")
  • replace 함수 사용할때
str.replace('a','b')#a를 b로 바꾸기
str = str.replace('a','b')

이렇게 실행하면 str이 자동으로 바꿔지지 않으므로 꼭 밑에줄 형식으로 적어야 함

  • 합, 곱 누적하고 싶을 때
    reduce 함수를 이용함
from functools import reduce
reduce(lambda x, y: x + y, [0, 1, 2, 3, 4]) #10
  • lambda
    lambda 매개변수 : 표현식
(lambda x,y: x + y)(10, 20) #30
  • sum 함수
    sum 함수 괄호 안에는 무조건 리스트 형식이 들어와야함
result1 = sum([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(result1)  # 출력 : 55
  • 문자열 포함하는지 안하는지 알고 싶을 때
    in, not in -> 포함하는지 안하는지
    find -> 포함하는지 안하는지, 문자열의 어느 index에 포함되어 있는지도 알려줌
if search_string in main_string:
	~~~
if search_string not in main_string:
	~~~
if main_string.find(search_string) != -1:
    print("검색 문자열이 메인 문자열에 포함되어 있습니다.")
  • 길이
len(str1)
  • 문자의 시작점, 끝점을 활용해서 찾고 싶을 때
    startswith, endswith
s = '가나다라 마바사아 자차카타 파하'
s.startswith('가') #True
s.endswith('마') #False
  • 왼쪽, 오른쪽, 양옆 공백, 문자열 조합 없애고 싶을 때
    lstrip, rstrip, strip
' apple'.lstrip()      # 인자가 없을 경우 왼쪽 공백 제거 'apple'
'apple '.rstrip()        # 인자가 없을 경우 오른쪽 공백 제거 'apple'
' apple '.strip()    # 인자가 없을 경우 왼쪽 공백 제거 'apple'
'apple'.strip('ae')  # 양쪽끝에 a, e의 문자열의 모든 조합을 제거'ppl'
  • 어떤 배열에서 그 값의 인덱스를 알고 싶을 때
    index
# a 리스트에서 10의 위치 찾기. (최소값인 1이 출력)
a = [11,10,12,13,20,31,11,10,10,11]
print(a.index(10)) # 1

# a 문자열에 1번째 ~ 6번째 위치에서 '1' 이라는 문자 위치 찾기
a = '123451'
print(a.index('1',1,6)) # 5
  • 문자의 아스키 코드 값 알고 싶을 때
char = 'A'
result = ord(char)
print('유니코드 값:', result) #유니코드 값: 65
  • 정렬하고 싶을 때
    sort,sorted
list.sort()
sorted(list)

a1 = [6, 3, 9]
a2 = a1.sort()
print(a1) # [3,6,9] 출력
print(a2) # sort함수의 리턴값은 none이므로 none으로 출력됨

b1 = [6, 3, 9]
b2 = sorted(b1)
print(b1) #[6,3,9] 원래대로 출력됨
print(b2) #[3,6,9]
  • 문자열 식을 실제 계산하고 싶을 때
    eval
b = eval("100 + 32") # 132 출력
  • print 출력하는 방법
s = 'coffee'
n = 5
result1 = f'저는 {s}를 좋아합니다. 하루 {n}잔 마셔요.'
print(result1)  # 저는 coffee를 좋아합니다. 하루 5잔 마셔요.
  • 리스트에서 cnt 세고 싶을 때
from collections import Counter
sample4 = ["a","a","b","b","b","b","c"]

cnt = Counter(sample4).most_common()
print("cnt: " + str(cnt))

dict(cnt)
  • 딕셔너리
    key:value
aa = {'0': 'AA', '1': 'BB', '2': 'CC'}
aa.get('2') # 결과: 'CC'
[k for k, v in aa.items() if v == 'CC' # 결과: ['2']

bb = {v:k for k,v in aa.items()} # {'AA': '0', 'BB': '1', 'CC': '2'}
bb.get('CC') # 결과: '2'
  • 리스트 곱, 팩토리얼 계산 하고 싶을 때
import math

numbers = [1, 2, 3, 4, 5]
print(math.prod(numbers))    # 120
print(math.factorial(5)) # 120
  • append 사용할때 주의 할 점
#틀린예시
arr = [0, 1]
list(set(arr)) = list(set(arr)).append(-1)
print(unique_arr)  # None출력

#맞는 예시
arr = [0, 1]
unique_arr = list(set(arr))  # 중복 제거 후 리스트로 변환
unique_arr.append(-1)
print(unique_arr)  # [0,1,-1]
  • 2진수 변환
  1. 숫자를 진수로 변환
>>> format(42, 'b') #이진수- 앞에 0b빼고 출력
'101010'
>>> format(42, 'o')
'52'
>>> format(42, 'x')
'2a'
>>> format(42, 'X')
'2A'
>>> format(42, 'd')
'42'

>>> format(42, '#b') #이진수- 앞에 0b 넣어서 출력
'0b101010'
>>> format(42, '#o')
'0o52'
>>> format(42, '#x')
'0x2a'
>>> format(42, '#X')
'0X2A'
  1. 진수를 숫자로 변환
>>> int('0b101010', 2)
42
>>> int('0o52', 8)
42
>>> int('0x2a', 16)
42
  • 요소의 길이로 sort하기
    => key로 len을 두면 됨
answer.sort(key=len)
  • str은 remove없으므로, replace("s","")이런식으로 해야됨

  • lstrip, rstrip, split

s1 = s.lstrip('{').rstrip('}').split('},{')

젤 왼쪽{{ 지우고 젤 오른쪽 }} 지우고 분리함

0개의 댓글