Python 코테 공부 정리

이름이름·2023년 5월 9일
0

Python

목록 보기
6/6

달리기 경주

for문 안에서 in

for i in range(len(callings)):
        if(callings[i] in answer): 

answer랑 callings 둘 다 배열인데
이렇게 하면 시간초과 날 확률이 높다
in때문에 결국 answer배열도 다 돌면서 사실상 2중 for문이 됨
-> 딕셔너리 2개 써서 하자 (프로그래머스/달리기경주)

enumerate

리스트를 딕셔너리로 바꿔줌 -> 인덱스,값 으로

for i, letter in enumerate(['A', 'B', 'C']):
    print(i, letter)

결과

0 A
1 B
2 C

파이썬 swap

파이썬에서 swap 하고 싶으면

a,b = b,a

이런식으로 하면 됨

딕셔너리에서 value값만 배열로 반환하고 싶다

return list(dic.values())

자릿수 더하기

"hello"라는 문자열을 하나하나 자르고 싶다?

str_list = list("hello")
하면 str_list에 하나하나 잘려서 들어가있음

[1차] 비밀지도

def solution(n, arr1, arr2):
    answer = []
    
    for i in range(n):
        tmp = bin(arr1[i] | arr2[i])
        # tmp결과 ex) '0b1101'
        tmp = tmp[2:].zfill(n)
        # tmp결과 ex) '01101'
        tmp = tmp.replace('1','#').replace('0',' ')
        # tmp결과 ex) ' ## #'
        answer.append(tmp)
    
    return answer

bin

  • 10진수를 2진수로 변환하는 함수
bin(10)
>>>'0b1010'

tmp[2:].zfill(n)

  • tmp[2:]는 앞에 2개를 지우는거임 (tmp는 배열아님 그냥 string)
  • zfill(n)은 n자릿수 만큼 앞에다 0으로 채워주는것임
    예를들어 tmp='0b1010'이면 앞에 '0b' 2개 지우고 0으로 2개 채워주는 것임

배열에 False 로 원하는 갯수만큼 채우고 싶다?

arr = [False] * len(cards)

카드뭉치

def solution(cards1, cards2, goal):
    answer = True
    
    from collections import deque
    q = deque()
    
    # queue를 써야했던점
    # 파이썬에서 queue쓰려면 deque으로 선언해서 append로 넣어주면됨
    # 배열이 비어있지 않는 것을 체크하는 방법
    
    for i in range(len(goal)):
        if((len(cards1)) and cards1[0] == goal[i]):
            q.append(cards1[0])
            del cards1[0]
            answer = "Yes"
        elif((len(cards2)) and cards2[0] == goal[i]):
            q.append(cards2[0])
            del cards2[0]
            answer = "Yes"
        else:
            answer = "No"
            break
    print(q)
    
    return answer

for문을 거꾸로?

reversed을 사용하면 됨
for i in reversed(range(N))

profile
공부 정리

0개의 댓글