분류 전체보기 71

명시도,결합자 (유데미 강의, CSS완벽 가이드, 맥스 선생님 강의)

css(캐스케이딩 스타일 시트) 뜻 : 여러 스타일이 같은 요소에 적용될 수 있다는 뜻 따라서 충돌을 해결하기 위해 명시도라는게 존재함 명시도 이해하기 우선순위 (위에 있을수록 아래와 충돌시 위에것이 적용됨) 1. 인라인 스타일 2. id 선택자 3. 클래스, pseudo클래스, 속성 선택자 4. HTML 태그 선택 5. * 전역 선택 6. 브라우저의 기본 설정 값 같은 순위일경우 css 파일상 아래에 있는것이 적용됨 상속 이해하기 스타일은 자식요소에게 상속됨(모든 스타일이 되는 것은 아님) 그리고 상속의 우선순위는 브라우저 기본 설정 값 보다 낮음(즉, 최하단 명시도) 결합자 #product h1{ //내용 } 위 처럼 할 경우 product라는 클래스를 가진 요소 안에 있는 모든 h1에 적용됨 위 처..

CSS 2023.08.30

box,display,선택자,important!,pseudo (유데미 강의, CSS 완벽 가이드, 맥스 선생님)

박스 이해하기 html 요소들은 박스(요소 컨텐츠와 border로 구성)의 형태를 띄고 있는데 border(테두리) 와 요소 컨텐츠 사이의 공간을 padding이라고 한다 border밖 공간을 margin이라고 하며 margin은 요소에 포함되지 않는다 (이때까지 명확하게 이해가 안갔는데 이 강의듣고 1방에 이해했다 갓맥스 ㄷㄷ) 마진 상쇄(margin collapsing) 두 요소의 margin이 겹치는 부분이 있으면 마진이 큰쪽이 그 공간을 차지한다(덮어씌운다) css에서 자동으로 상쇄하는 것이기에 의도하지 않았다면 margin-top 혹은 margin-bottom을 쓰도록 하자 프로퍼티 축약 border: a b c 처럼 한 줄로 작성하는 것 %의 의미 width, height를 %로 지정할 경우 ..

CSS 2023.08.30

6강 CSS 요소 배치하기 (유데미 강의, max 선생님)

positioning 기본값은 static 이외에도 여러가지 설정값이 존재한다 위치를 변경하려면 기본값인 static을 사용해서는 안된다 fixed: 원래 문서 대열에서 제외시킨다(다른 요소들의 입장에서는 없는 것처럼 느껴진다), 그리고 요소를 인라인-블록 요소로 변경시킨다, top,left 같은 프로퍼티를 쓸경우 뷰포트를 기준으로 설정된다 (스크롤을 하면 따라 내려옴) z-index 화면상 x,y축이 아닌 z축 즉, 요소가 겹쳤을떄 어느 것이 위로 올지를 결정하기 위해 사용. static에서는 사용불가, 음수면 뒤로, 양수면 앞으로 (숫자 크기에 따라 상대적) 값이 같을 경우 코드상 아래에 위치한 요소가 위로 옴 absolute: 뷰포트가 아닌 html을 기준으로 위치가 결정됨 (부모 요소에 posit..

CSS 2023.08.30

[백준 파이썬(python) 2775번 문제] (부녀회장이 될테야)

문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 입력 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 ..

PS 2023.08.30

[백준 파이썬(python) 11726번 문제] (2xn 타일링)

문제 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 설명 DP유형의 문제 타일의 마지막 칸에 2x1 타일이 오는 경우, 1x2 타일 2개가 오는 경우 두가지 경우로 나누어서 생각해보면 f(n) = f(n-1) + f(n-2)의 점화식을 생각할 수 있다 (위 2가지의 경우의 경우의 수 합이 모든 경우의 수이기 때문) DP는 탑다운,바텀업 두 가지 방법이 있다 코드 # 탑다운, 재귀 import sys N = int(sys.stdi..

PS 2023.08.27

동적 계획법, DP, 피보나치 수열, 이항계수 (컴공선배 강의)

동적계획법이라는 이름은 전혀 연관성이 없으므로 생각하지 않는게 좋다 n = 10일때를 구하기 위해 n =9,8,7,6 일때를 먼저 구해서 더 큰 경우를 구하는 것 둘다 DP 테이블에 작은 문제의 답을 담아두는것은 동일함 메모이제이션을 이해할 수 있느 간단한 예시 DP에서 자주 나오는 수열 개념 (구현하는데 반복문, 재귀 둘 다 사용가능하다) 둘 중 재귀를 생각해보자 f(6)을 구하기 위해 하나하나 따져보면 f(4), f(3)과 같이 반복적으로 값이 사용되는 것을 볼 수 있다 이런 경우 작은 부분의 값을 미리 구해서 어딘가에 저장해두면 다음부터는 쓸모없는 연산을 줄일 수 있다 이렇게 답을 저장해두는 것을 캐싱이라고 하며 성능에서 엄청난 차이를 보인다 차이점 bottom-up(반복문) 방식은 다음 단계를 위..

[백준 파이썬(python) 11051번 문제] (이항 계수2)

설명 이항계수에 대해 공부하고 삼각수의 개념을 사용해서 푸는 문제 탑 다운(재귀)와 바텀 업(반복) 두가지 방식 가능 코드 # 탑 다운 재귀 사용 import sys sys.setrecursionlimit(10**6) N, K = map(int, input().split()) MOD = 10007 cache = [[False] * 1001 for _ in range(1001)] def bino(n, k): if cache[n][k]: return cache[n][k] if n == k or k == 0: cache[n][k] = 1 else: cache[n][k] = bino(n - 1, k - 1) + bino(n - 1, k) cache[n][k] %= MOD return cache[n][k] pri..

PS 2023.08.26

[백준 파이썬(python) 1654번 문제] (랜선 자르기)

문제 집에서 시간을 보내던 오영식은 박성원의 부름을 받고 급히 달려왔다. 박성원이 캠프 때 쓸 N개의 랜선을 만들어야 하는데 너무 바빠서 영식이에게 도움을 청했다. 이미 오영식은 자체적으로 K개의 랜선을 가지고 있다. 그러나 K개의 랜선은 길이가 제각각이다. 박성원은 랜선을 모두 N개의 같은 길이의 랜선으로 만들고 싶었기 때문에 K개의 랜선을 잘라서 만들어야 한다. 예를 들어 300cm 짜리 랜선에서 140cm 짜리 랜선을 두 개 잘라내면 20cm는 버려야 한다. (이미 자른 랜선은 붙일 수 없다.) 편의를 위해 랜선을 자르거나 만들 때 손실되는 길이는 없다고 가정하며, 기존의 K개의 랜선으로 N개의 랜선을 만들 수 없는 경우는 없다고 가정하자. 그리고 자를 때는 항상 센티미터 단위로 정수길이만큼 자른다..

PS 2023.08.26

[백준 파이썬(python) 2805번 문제] (나무 자르기)

문제 상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기를 이용해서 나무를 구할것이다. 목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱날이 땅으로부터 H미터 위로 올라간다. 그 다음, 한 줄에 연속해있는 나무를 모두 절단해버린다. 따라서, 높이가 H보다 큰 나무는 H 위의 부분이 잘릴 것이고, 낮은 나무는 잘리지 않을 것이다. 예를 들어, 한 줄에 연속해있는 나무의 높이가 20, 15, 10, 17이라고 하자. 상근이가 높이를 15로 지정했다면, 나무를 자른 뒤의 높이는 15, 15..

PS 2023.08.26

[백준 파이썬(python) 1920번 문제] (수 찾기)

문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. 출력 M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 설명 set, 이진탐색 둘다 풀 수 있는 문제 list로만 풀면 시간초과에 걸리는 문제 코드 # set으로 풀 때 import sys N =..

PS 2023.08.26