백준 오답 정리 1

알맹이·2023년 1월 4일
0

백준공부 파이썬

목록 보기
6/6

빈 세트 만들기

  • a={} 하면 딕셔너리 만들어지니 a={,} 할바에야 그냥 a=set() 하자

set는 append 메서드가 아니라 add()임

추가로 set의 기능들 확인하기

li1.extend(li2) extend()메서드

리스트 비우기

리스트 비우기 참고 글

    1. clear()
    2. del [:]
    3. del list
    차이점 숙지하기

sort()와 sorted()에서 key가 여러개 일 때

sort key 참고 글

  • key 에는 함수가 들어가야함
  • 예시) key= lambda x: (x[0], -x[2])

sys.stdin.readline()과 .rstrip()이 붙는 것에는 개행문자 차이가 있으니 주의하기

파이썬에서는 숫자를 0으로 시작할 수 없다

숫자 앞 0 참고 글

strip과 split 사용 예문

  • [1,2,3,4]를 입력값으로 받았을 때 리스트 생성하기
    -> map(int,input().strip("[]").split(",")

언패킹을 통해 할당하기

*asterisk 참고 글

  • 예문) a,*b= 1,2,3,4
    -> a=1 ,b=[2,3,4]

enumerate 반환값 : ( index, element ) 튜플 형태

리스트에서 특정 요소를 삭제하고 싶을 때

리스트 요소 삭제 방법 정리 참고 글

  • del li[index(a)]
  • list.remove(a) 를 사용하면 되겠다.

표기법 참고

참고

  • 함수, 변수, 속성 -> snake_case
  • 클래스, 예외 -> PascalCase

기타 표기법 정리 PEP8 참고

str.islower() str.isupper()

deque.rotate()

deque rotate 참고 글

  • 데크의 기능이다.
    deque.rotate(3) : 오른쪽으로 세번 회전
    deque.rotate(-2) : 왼쪽으로 두번 회전

데크의 메서드 참고하기

데크 메서드 정리 글
데크 메서드 정리글 2

리스트 컴프리헨션 헷갈리지 않기

  • a = [[0] * 5]
    • [ [0, 0, 0, 0, 0] ]
  • b = [ [] * 5]
    • [ ]
  • b1 = [ [] for _ in range(5) ]
    • [ [ ], [ ], [ ], [ ], [ ] ]
  • c = [1*5]
    • [5]
  • d = [[0] for _ in range(5)]
    • [ [0], [0], [0], [0], [0] ]
  • d1 = [ 0 for _ in range(5)
    • [ 0,0,0,0,0 ]
  • d2 = [0] * 5
    • [ 0,0,0,0,0 ]

리스트 요소만 복사하는 방법

how to copy a list 참고 글

  • 그냥 list2= list1 해버리면 같은 주소를 가리키게 되는 것을 주의하자.
    1. 슬라이싱// b=a[:]
    2. list() // b=list(a) ... 참고만 하자 잘 안쓰인다
    3. copy() 메서드!! // b= a.copy() 사용하기.

/ 나누기 연산 주의하기 float 값 반환됨

  • 아무리 나누어 떨어지더라도 35.0 이렇게 float 으로 반환되니 조심하기.
  • int(350/10) 하거나 350//10 해야함
    • 두 표현은 같은 표현임

from collections import Counter

Counter 클래스 사용법

  • Counter 객체 반환
    • Counter( iterator ) -> Counter( {'hi' : 3, 'hey' : 2 } )
    • dictionary 확장이기 때문에 딕셔너리처럼 사용 가능
  • 가장 흔한 데이터 찾기가 가능한 most_common() 메서드가 있음
    • Counter( iterator ).most_common(3)
      -> 가장 개수가 많은 3 개의 데이터를 반환한다는 뜻
    • Counter( iterator ).most_common()
      -> 인자가 없으면 데이터가 많은 순으로 정렬된 리스트를 리턴함

from fractions import Fraction

분수 표시 및 연산 참고 글
fractions 참고 글

  • 유리수를 계산할 때 사용하는 모듈임. 파이썬 기본 라이브러리에 있음.
  • 1/5 + 2/5 -> 0.600000000000000001 이기 때문에
    1/5 + 2/5 = 3/5 를 만들기 위해서는 fractions.Fraction을 이용해야함
  • Fraction( "분자/분모" ) 처럼 문자열로도 가능하지만
    Fraction( 분자, 분모 ) 로도 가능하다.
    • Fraction(1,5) + Fraction(2,5) -> Fraction(3,5)임
  • numerator : 분자 값
    • a.numerator -> 1
  • denominator : 분모 값
    • a.denominator -> 5
  • 값을 다시 실수로 바꿀 수도 있다
    • float(Fraction(3,5))
  • 알아서 기약분수로 바꿔줌.!

max 함수의 key 값

  • str2 = max ((0,40),(1,20),(2,42),(3,100),key = lambda x:x[1]) 처럼 활용 가능

continue, pass, break

  • continue : 다음 순번의 루프 진행
    pass : 반복문영향x 조건문에서 딱히 넣어줄 조건이 없거나 class 선언시 초기에 넣어줄 값이 없는 경우 등에 사용
    break : 해당 반복문의 밖으로 나감

!! 아이디어 모음 !!

  • if n==n[::-1]: 표현 확인하기.
  • print( sorted(score_list)[-k] ) 와 같은 출력도 된다는 것을 참고하기
  • li = [int(input()) for _ in range(5)] 짧게 입력받기
profile
not yet

0개의 댓글